java - 在线程 0 中运行 JFrame

标签 java multithreading swing jframe

当运行一个生成 JFrame (Swing) 的程序时,如果它在线程 0 上运行,为什么它不显示窗口?在线程 0 上运行可以通过 (OS X) 来完成:

java -XstartOnFirstThread Driver

示例

public class Driver
{
    public static void main (String args[])
    {   
        SwingUtilities.invokeLater(() -> { 
            WindowClass button = new WindowClass(450, 450);
        });
    }
}
<小时/>
public class WindowClass extends JFrame
{
    public WindowClass(int width, int height)
    {
        setTitle("Demo");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(width, height);
        setVisible(true);
    }
}

最佳答案

您需要显示代码,但您可以通过使用 SwingUtilities 在 EDT 上排队来在 EDT 上运行代码:

SwingUtilities.invokeLater(() -> {
    // start your GUI here
});

关于java - 在线程 0 中运行 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115424/

相关文章:

java - 使用声明初始化变量或静态初始化之间有区别吗?

java - Fabrica8、Vert.x、Karaf、Felix、Equinox、Spring DM 和 Fuse 以及 Docker 之间的区别

multithreading - Perl - 多线程/ fork /同步问题 :

java - 将 Thread local 与 SDF 结合使用并在使用后将其删除

java - JCombobox 的圆形弹出窗口

java - JlayeredPane 透明度 setOpaque 不起作用

java - 要找到给定数字的质因数,为什么要将 for 循环的第二条语句设置为 i * i <= userInput 而不是 i <= userInput?

javascript - 查询字符串总是在服务器端返回 NULL

java - 如何使用数据提供程序在 testNG 上并行运行测试?

具有相同类实例的Java SwingWorker?