java - 如何在 Java 中使用 Swing 修复元素的显示
问题描述
我正在使用 Java 中的 Swing 开发一个应用程序,但是,我在显示中遇到了一个奇怪的问题,我的代码工作得很好,但是输出很奇怪。当我运行程序时。JFrame 看起来是空的或缺少某些东西(JMenuBar、JMenuItem 等是不可见的),然后我最大化屏幕,所有其他东西都变得可见,然后我最小化屏幕并且它看起来可见。我很确定代码可以正常工作,这只是一个显示问题。谁能帮忙让第一个显示看起来不错?
这是代码
JFrame frame = new JFrame("Menu");
frame.setVisible(true);
frame.setSize(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
JMenu file = new JMenu("File");
menubar.add(file);
JMenuItem exit = new JMenuItem("Exit");
file.add(exit);
JMenu help = new JMenu("Help");
menubar.add(help);
JMenuItem about = new JMenuItem("About");
help.add(about);
class exitaction implements ActionListener {
public void actionPerformed (ActionEvent e) {
System.exit(0);
}
}
exit.addActionListener(new exitaction());
}
解决方案
把下面的代码放在最后。它会正常工作的。
该方法setVisible
是一个动作,就像show()
JDK 1.5 之前一样。
frame.setVisible(true);
推荐阅读
- coq - 有没有更优雅的方式让 coq 相信基于列表的假设是矛盾的?
- java - 如何从一组对象中调用对象的方法?
- javascript - 为按钮设置属性,但仅在我单击两次时才有效
- python - 根据用户登录尝试对时间序列进行分组
- regex - 将 dfa 转换为星号案例的规则
- network-programming - 导出 BA 模型中大 k 状态下 p(k) 的衰减指数
- command-line-interface - Git bash 总是运行 'export PATH=$PWD/node_modules/.bin:$PATH'
- nestjs - 如何在类验证器 NestJS 中删除自定义消息中的字段名称
- google-cloud-platform - 使用 HttpsOTAUpdate 从 GCS 下载二进制文件
- c++ - 寻找一种方法来实现 main 以使我的等待列表程序正常运行