我是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应用程序中接受。 提前致谢。
答案 0 :(得分:3)
两次调用Application.launch()应该导致异常。
来自Application.launch() API文档:
启动一个独立的应用程序。通常从main method()调用此方法。不能多次调用它,否则将引发异常。 在退出应用程序之前,通过调用Platform.exit或关闭所有应用程序窗口,启动方法不会返回。
您需要创建一个附加舞台并进行显示。 这是显示另一个阶段的示例: How to open two Javafx windows?