问题描述
我正在为一个项目创建一个 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));
contentPane.setLayout(new BorderLayout(0,0));
setContentPane(contentPane);
}
}
这就是我已经完成的:
-
WindowBuilder 已经安装,包括 1.9.5 和 1.9.6.pre Nightly Build(我也试过只安装其中之一,但没有成功)。
-
我已经安装了 Swing 所需的所有软件包,包括:Swing 设计器、所有 SWT 组件和所有 WindowBuilder 组件。
-
我已经尝试卸载并重新安装所有这些软件包和组件,但仍然没有成功。
-
Window>Preferences>WindowBuilder 上的选项“将 WindowBuilder 编辑器与自动识别的 Java GUI 文件关联”已被选中。
唯一剩下的就是重新安装 Eclipse,因为我安装了多少插件,我有点担心。重新安装它们会很痛苦(有点)。
WindowBuilder 是否与某些插件不兼容?我有一些适用于 Python 和其他只是 QoL 的。
编辑:问题解决了,对于任何人来说,只要在最后一行的 eclipse.ini 中添加 --illegal-access=permit
。
解决方法
这是已知问题,当使用 Java 16 运行 Eclipse 时:
Eclipse bug 572210 - Reflective access with CGLIB breaks windowbuilder in java 16 and higher
作为解决方法(请参阅comment 3),在eclipse.ini
中添加以下行到末尾(或至少在-vmargs
之后):
--illegal-access=permit
,
在 JavaSE-11 中打开新项目并将窗口构建器降级到 1.9.4 版,一切都会正常工作。我遇到了同样的问题。
,我认为您必须参考以下内容,因为它在我的最后工作