java - 将应用程序移至 javafx 中的第二个窗口监视器

标签 java javafx monitor

我正在编写 java FX 应用程序。我有两台显示器连接到一台电脑。我想在第二个窗口监视器中打开应用程序。不知怎的,我设法用 vbox 来做到这一点,而不是在它们的组件内部加载。但是当我尝试将我的 fxml View 加载到 Parent 时,它根本没有反应。我正在回顾 stackoverflow 的答案`

Choose which monitor does a JavaFX window open in

但是当您尝试加载 fxml View 时它没有反应,为什么?我怎样才能让它发挥作用?这是我的代码

@Override
public void start(Stage primaryStage) throws Exception
{
    AnchorPane root = FXMLLoader.load(getClass().getClassLoader().getResource("order_state_modal.fxml"));
    primaryStage.setTitle("Jasmin");
    Scene scene = new Scene(root);
    int ind = 1;
    for(Screen screen : Screen.getScreens())
    {
        Rectangle2D bounds =    screen.getVisualBounds();
        if(ind == 2)
        {
            primaryStage.setX(bounds.getMinX());
            primaryStage.setY(bounds.getMaxY());
        }
        ind ++;
    }

    primaryStage.setMaximized(true);
    primaryStage.setScene(scene);
    primaryStage.show();
}

`

最佳答案

我发现它的答案是以下代码

    AnchorPane root = new AnchorPane();
    Scene scene = new Scene(root);
    int index = 1;
    for (Screen screen : Screen.getScreens()) {
        Rectangle2D bounds = screen.getVisualBounds();

            if(index == 2)
            {
            primaryStage.setX(bounds.getMinX());
            primaryStage.setY(bounds.getMinY());
            }
        index ++;
    }
    root.getChildren().add(FXMLLoader.load(getClass().getClassLoader().getResource("order_state_modal.fxml")));
    primaryStage.setMaximized(true);
    primaryStage.setScene(scene);
    primaryStage.show();

关于java - 将应用程序移至 javafx 中的第二个窗口监视器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56020527/

相关文章:

c - stdout 如何存储数据? - C

c++ - 线程安全问题

java - 如何使用正则表达式解析文本文件中包含的电子邮件?

java - RxJava2 - 为多个 Rx 链重用运算符序列

java - 当并非所有属性都在同一个类中时填充 JavaFX TableView

java - 如何通过 JavaFX 中的场景构建器将 style.css 添加到我的应用程序?

java - TableView 静态时不显示列

azure - 如何在 terraform 中为 SQL DB 创建警报规则

java - 使用JSP作为模板解析引擎-安全问题

java - "Bringing my Java application to Mac OS X": Menus