Я создал приложение, в котором мне нужно щелкнуть элемент меню «Открыть ...», чтобы открыть FileChooser. FileChooser открывается, но проблема в том, что я могу щелкнуть или закрыть первое окно, пока этот FileChooser все еще открыт.
У меня проблема в моем коде? Неправильно ли указывать primaryStage
в качестве параметра для fileChooser.showOpenDialog(primaryStage);
?
Это мои декларации
private Stage primaryStage;
Это мой метод запуска.
@Override
public void start(Stage primaryStage) {
this.primaryStage = primaryStage;
primaryStage.setTitle("Ontology - Language Disorders");
primaryStage.centerOnScreen();
initRootLayout();
showOntologyOverview();
primaryStage.show();
}
Это мой OpenDialog
@FXML
private void handleOpenMenuItem(ActionEvent event){
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Open Resource File");
fileChooser.getExtensionFilters().addAll(new FileChooser.ExtensionFilter("OWL (*.owl)", "*.owl"));
fileChooser.showOpenDialog(primaryStage);
}
Мой initRootLayout:
public void initRootLayout() {
try {
// Load root layout from fxml file.
FXMLLoader loader = new FXMLLoader();
loader.setLocation(MainApp.class.getResource("RootLayout.fxml"));
rootLayout = (BorderPane) loader.load();
// Show the scene containing the root layout.
Scene scene = new Scene(rootLayout);
primaryStage.setScene(scene);
primaryStage.show();
} catch (IOException e) {
e.printStackTrace();
}
}
Application
или класс вашего контроллера? - person James_D   schedule 08.04.2015primaryStage
в экземпляре контроллера? (Кстати, это вообще ужасная идея; она слишком запутана, поскольку почти невозможно отследить, какие вещи были инициализированы и какие методы были вызваны.) - person James_D   schedule 08.04.2015multiple stages
, пока вы открываетеFileChooser
? - person ItachiUchiha   schedule 08.04.2015primaryStage.show()
внутриstart()
иinitRootLayout()
. Просто позвоните из одного места. Код не имеет никакого смысла в том, почему ваш код не работает должным образом. Можете ли вы создать MCVE и опубликовать его? - person ItachiUchiha   schedule 08.04.2015