java - JDialog 不会显示在设计选项卡中

标签 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);
            }
        });
    }
}

知道为什么吗?

最佳答案

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

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

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

关于java - JDialog 不会显示在设计选项卡中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56907669/

相关文章:

java - 如何处理 Java 中一维数组的跳过输入

java - Avro Java SpecificDatumReaders 是否可重用?

java - Kafka Stream 和 KGlobalTable Join 问题

Java 事件传播停止

java - 国际化 Java Swing 桌面应用程序的最佳实践是什么?

java - 如何从 jinternalframe 调用 jdialog

java - 在函数内部或外部声明对象

java - 双击 jtable 的错误行为

java - JPanel 已添加到切换按钮单击上的其他 Jpanel 上

Java setLocation() 事故