【问题标题】:WindowBuilder Design Tab incomplete in EclipseEclipse 中的 WindowBuilder 设计选项卡不完整
【发布时间】:2022-01-19 20:22:26
【问题描述】:

我正在为一个项目创建一个 JFrame,在尝试对其进行编辑时,设计选项卡是空白的。

我创建了一个测试项目,所有内容都是默认的,但这个“错误”仍然存在。

这是测试的代码:

package test;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class Test extends JFrame {

private JPanel contentPane;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Test frame = new Test();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public Test() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);
  }

}

这是我已经做过的:

  • WindowBuilder 已经安装,包括 1.9.5 和 1.9.6.pre Nightly Build(我也尝试只安装其中一个,但没有成功)。

  • 我已经为 Swing 安装了所有必要的包,包括:Swing Designer、所有 SWT 组件和所有 WindowBuilder 组件。

  • 我已尝试卸载并重新安装所有这些软件包和组件,但仍然没有成功。

  • Window>Preferences>WindowBuilder 上的“将 WindowBuilder 编辑器与自动识别的 Java GUI 文件关联”选项已被选中。

剩下的唯一一件事就是重新安装 Eclipse,因为我安装了多少插件,所以我有点担心。重新安装它们会很痛苦(有点)。

WindowBuilder 是否与某些插件不兼容?我有一些 Python 和其他只是 QoL 的。

编辑:问题已解决,对于任何遇到此问题的人,只需在最后一行的 eclipse.ini 中添加 --illegal-access=permit

【问题讨论】:

  • this 吗?否则,请同时告知用于运行 Eclipse 的 Java 版本(请参阅帮助 > 关于 Eclipse IDE:安装详细信息:配置)和项目中使用的 Java 版本。这是否仅在使用深色主题或使用默认浅色主题时才发生?
  • 我在 Eclipse 安装和项目中都使用 jdk-16.0.1,它是我目前安装的唯一版本,是的,如果你愿意,这个“错误”会发生在默认经典上主题也是如此,关于你提到的--illegal-access=permit 论点,你知道我应该把我的.ini 放在哪里吗?我对 Java 和 Eclipse 有点陌生。
  • eclipse.ini 文件中添加--illegal-access=permit 作为最后一行。
  • 是的,现在可以使用了,非常感谢! @howlger

标签: java eclipse swing jframe windowbuilder


【解决方案1】:

在使用 Java 16 或更高版本运行 Eclipse 时,这是一个已知且已解决的问题:

WindowBuilder issue #45 - Reflective access with CGLIB breaks windowbuilder in java 16 and higher

更新:问题已修复。它已在WindowBuilder Nightly Build(更新站点:https://download.eclipse.org/windowbuilder/lastgoodbuild/)中提供,并将在即将发布的 WindowBuilder 1.9.8 版本中提供。

【讨论】:

    【解决方案2】:

    在 JavaSE-11 中打开新项目并将窗口构建器降级到版本 1.9.4,一切都会正常工作。我也遇到了同样的问题。

    【讨论】: