加载 fxml 表单以显示在屏幕上
Stage mainStage = new Stage();
try {
Parent main = FXMLLoader.load(getClass().getResource("main.fxml"));
Scene scene= new Scene(main);
//getting the css style sheet
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
mainStage.setScene(scene);
mainStage.setTitle("HUB KB.S CO. LTD");
mainStage.setMaxHeight(530);
mainStage.setMaxWidth(450);
mainStage.setMinWidth(400);
mainStage.setMinHeight(500);
mainStage.setTitle("HUB KBS INVENTORY");
mainStage.resizableProperty().setValue(Boolean.FALSE);
mainStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
我想要一种方法来防止用户在子窗体仍处于打开状态时访问父窗体
假设您发布的代码显示"子表单",只需执行
mainStage.initModality(Modality.APPLICATION_MODAL);
在打电话给mainStage.show()
之前。
作为替代方案 - 如果您有多个阶段并且只需要一个阶段,则可以执行以下操作。
mainStage.initModality(Modality.WINDOW_MODAL);
mainStage.initOwner(primaryStage);
mainStage.show();
这将使子窗口模态化为单个窗口,而不是整个 JavaFX 线程。