JDialog 不会显示在设计选项卡中
JDialog won't show in design tab
我正在使用 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);
}
});
}
}
知道为什么吗?
尝试删除 main-method 上方指定 WindowBuilder 入口点的注释。
当 window/dialog 不是作为它自己的 class 而是在另一个 class 的方法中创建时,通常使用此注释。想想创建和显示对话框的方法 showCustomDialog()
,但是 class 在其他方法中做很多其他事情。然后,可以告诉 WindowBuilder 它应该从哪里开始解析代码以检测它应该显示哪个 window/dialog 以供编辑。
很可能,WindowBuilder 无法正确解析您的 main-method 并且无法识别您尝试创建的内容 window/dialog,因此只显示一个空框架。删除 entrypoint-comment 将使 WindowBuilder 解析您的 class 的构造函数,这应该会更好。
我正在使用 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);
}
});
}
}
知道为什么吗?
尝试删除 main-method 上方指定 WindowBuilder 入口点的注释。
当 window/dialog 不是作为它自己的 class 而是在另一个 class 的方法中创建时,通常使用此注释。想想创建和显示对话框的方法 showCustomDialog()
,但是 class 在其他方法中做很多其他事情。然后,可以告诉 WindowBuilder 它应该从哪里开始解析代码以检测它应该显示哪个 window/dialog 以供编辑。
很可能,WindowBuilder 无法正确解析您的 main-method 并且无法识别您尝试创建的内容 window/dialog,因此只显示一个空框架。删除 entrypoint-comment 将使 WindowBuilder 解析您的 class 的构造函数,这应该会更好。