java - 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);
}
});
}
}
知道为什么吗?
解决方案
尝试删除指定 WindowBuilder 的入口点的主方法上方的注释。
当窗口/对话框不是作为它自己的类创建,而是在另一个类的方法中创建时,通常使用此注释。想一想showCustomDialog()
创建和显示对话框的方法,但该类在其他方法中做了很多其他事情。然后,可以告诉 WindowBuilder 它应该从哪里开始解析代码以检测它应该显示哪个窗口/对话框以进行编辑。
最有可能的是,WindowBuilder 无法正确解析您的主方法,并且无法识别您尝试创建的窗口/对话框,因此只显示一个空框架。删除入口点注释将使 WindowBuilder 解析您的类的构造函数,这应该会更好。
推荐阅读
- r - 如何将值分组为数据集中的较小值集?
- javascript - Flask wtforms Integerfield() 返回 NaN
- mongodb - Mongod 身份验证使 GCP VM 无法访问
- sql - 如何将同一表中的行与每个表的默认行进行比较?
- excel - VBA - 将 A 列到 I 列复制到本书末尾的新工作表中
- python - Matplotlib/CartoPy 实体填充轮廓图下方
- git - 如何计算上游和本地分支之间的落后/提前提交?
- nlp - 提取非结构化文本组以供以后的 NLP 使用?
- swift - SwiftUI 对齐底部
- xml - 使用 AppleScript 将 XML 转换为 CSV,需要帮助调试