JDialog将不会显示在“设计”选项卡中

时间:2019-07-05 18:15:49

标签: java swing jdialog windowbuilder design-time

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

知道为什么吗?

1 个答案:

答案 0 :(得分:1)

尝试删除主方法上方的注释,该注释指定WindowBuilder的entryPoint。

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

WindowBuilder最有可能无法正确解析您的主方法,并且无法识别您尝试创建的窗口/对话框,因此仅显示一个空框架。删除entrypoint-comment将使WindowBuilder解析您的类的Constructor,这应该会更好。