我正在使用适用于Eclipse的Window Builder插件。
当我执行以下代码时,它正确显示了JDialog
。我期望JDialog
也将在设计选项卡中显示(在设计时),但不会显示。
package testshowjdialog;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class MyJDialog extends JDialog {
private static final long serialVersionUID = 1L;
public MyJDialog(JFrame parent) {
super(parent, true);
setTitle("A Title");
JButton button = new JButton("Test");
add(button);
setSize(100, 100);
}
/**
* @wbp.parser.entryPoint
*/
public static void main(String [] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MyJDialog dialog = new MyJDialog(new JFrame());
dialog.setVisible(true);
}
});
}
}
知道为什么吗?
答案 0 :(得分:1)
尝试删除主方法上方的注释,该注释指定WindowBuilder的entryPoint。
此注释通常在创建窗口/对话框而不是作为其自己的类而在另一个类的方法中使用时使用。考虑创建并显示对话框的方法showCustomDialog()
,但是该类在其他方法中还有很多其他工作。然后,可以告诉WindowBuilder应该在哪里开始解析代码,以检测应该显示哪个窗口/对话框进行编辑。
WindowBuilder最有可能无法正确解析您的主方法,并且无法识别您尝试创建的窗口/对话框,因此仅显示一个空框架。删除entrypoint-comment将使WindowBuilder解析您的类的Constructor,这应该会更好。