作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用推荐的代码启动我的交互式程序,它使用 Swing。 :
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(
new Runnable() {
public void run() {
createAndShowGUI();
} } ) };
它创建一个 JFrame,将其称为“Foo”,并在用户关闭该窗口时结束(通过使用操作系统的 Close-Window X 图标或其他操作系统方式关闭应用程序)
我想显示另一个窗口“Bar”,获取用户输入,用我自己的 Swing 调用关闭该窗口,然后显示“Foo”窗口。
我可以为 Foo 和 Bar 重用相同的 JFrame,并在两者之间清除它。但我更喜欢让他们每个人在设计上更加独立。因此,Foo 中的 ActionListener 需要关闭 Foo 的框架,并调用显示 Bar 的代码。
是否需要使用InvokeLater()调用显示Bar的代码?为了获得更多的设计独立性,我的 main() 是否应该启动并同步两个线程?
最佳答案
用户触发 Action 监听器代码在 EDT 中执行,因此您无需再次包装它。也就是说,使用 CardLayout
可能比使用多个框架更合适。
关于java - InvokeLater() - 一次就够了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18273424/
我是一名优秀的程序员,十分优秀!