首页 > 解决方案 > JDialog 不会显示在设计选项卡中

问题描述

我正在使用 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);
            }
        });
    }
}

知道为什么吗?

标签: javaswingjdialogwindowbuilderdesign-time

解决方案


尝试删除指定 WindowBuilder 的入口点的主方法上方的注释。

当窗口/对话框不是作为它自己的类创建,而是在另一个类的方法中创建时,通常使用此注释。想一想showCustomDialog()创建和显示对话框的方法,但该类在其他方法中做了很多其他事情。然后,可以告诉 WindowBuilder 它应该从哪里开始解析代码以检测它应该显示哪个窗口/对话框以进行编辑。

最有可能的是,WindowBuilder 无法正确解析您的主方法,并且无法识别您尝试创建的窗口/对话框,因此只显示一个空框架。删除入口点注释将使 WindowBuilder 解析您的类的构造函数,这应该会更好。


推荐阅读