无法从Java主应用程序运行两个Java FX实例?

时间:2018-11-13 22:01:20

标签: java javafx

我是Java FX应用程序的初学者。我创建了一个简单的项目,我想使用Java主应用程序运行两个Java FX实例。

public class InfoMain {
public static void main(String args[]) throws Exception {
    Application.launch(CxiC.class, args);
    Application.launch(BiC.class, args);}

BiC类是示例应用程序,而我如下更改CxiC类的文本:

public class CxiC extends Application{
 @Override
public void start(Stage primaryStage) {
    Button btn = new Button();
    btn.setText("Say 'Hello budapest'");
    btn.setOnAction(new EventHandler<ActionEvent>() {

        @Override
        public void handle(ActionEvent event) {
            System.out.println("Hello budapest!");
        }
    });

    StackPane root = new StackPane();
    root.getChildren().add(btn);

    Scene scene = new Scene(root, 300, 250);

    primaryStage.setTitle("Hello World!");
    primaryStage.setScene(scene);
    primaryStage.show();
}}

当我执行该应用程序时,BiC类中的消息中将出现以下屏幕。但是我希望两个屏幕都可以同时出现。有什么建议吗?

基于注释,我修改了代码,但仍然显示Hello World消息。即使我从Java主方法类中删除了这两个实例,消息也是一样的。似乎JavaFX参数未从Java应用程序中接受。 提前致谢。 enter image description here

1 个答案:

答案 0 :(得分:3)

两次调用Application.launch()应该导致异常。

来自Application.launch() API文档:

  

启动一个独立的应用程序。通常从main method()调用此方法。不能多次调用它,否则将引发异常。   在退出应用程序之前,通过调用Platform.exit或关闭所有应用程序窗口,启动方法不会返回。

您需要创建一个附加舞台并进行显示。 这是显示另一个阶段的示例: How to open two Javafx windows?