使用-XstartOnFirstThread进行Java Swing和FXIssue

时间:2017-04-12 03:21:46

标签: java swing lwjgl

所以,我目前正在尝试使用LWJGL3,它要求interface CssPropertyValues { marginLeft? :string |number; } interface RecursiveCssProperties { [key: string]: CssProperties; } type CssProperties = CssPropertyValues & RecursiveCssProperties; let foo: CssProperties = {}; let myMargin = foo.bar.really.foobar.marginLeft; //should work... myMargin is typed as string|number|undefined 用于初始化GLFW窗口。我也在尝试创建一个各种类型的启动器,这需要Java Swing或JavaFX。但是,我发现如果启用了JVM参数,那么Swing和JavaFX都不会显示窗口,而Printing仍然可以使用main方法。例如:

-XstartOnFirstThread

正确输出:“hi”和“hi again”但是,框架永远不会打开,当参数被删除时,框架会起作用。我也尝试将框架放在一个新线程中:

public static void main(String[] args) {
    System.out.println("hi");
    frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
    frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
    frame.setLocationRelativeTo(null);
    frame.setTitle("Angulus");
    frame.setResizable(false);
    frame.pack();
    frame.setVisible(true);
    System.out.println("hi again.");
}

同样的问题再次出现,这个窗口只有在没有

的情况下才会打开

public static void main(String[] args) throws Exception { System.out.println("hi"); new Thread(() -> { System.out.println("hi again."); frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)); frame.setLocationRelativeTo(null); frame.setTitle("Angulus"); frame.setResizable(false); frame.pack(); frame.setVisible(true); }).start(); } 论点。这同样适用于JavaFX,甚至从未调用-XstartOnFirstThread方法。

0 个答案:

没有答案