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 的构造函数,这应该会更好。