Блокировка главного окна в JavaFX

285
08 октября 2017, 22:43

На сцене главного окна есть кнопка, при нажатии на которую создается дополнительное окно следующим образом:

public static void create()
{
    Stage stage = new Stage();
    AnchorPane pane = new AnchorPane();
    //Здесь идет добавление элементов в pane
    stage.setScene(new Scene(pane));
    stage.setWidth(500);
    stage.setHeight(600);
    stage.show();
}

Мне требуется сделать так, чтобы главное окно было заблокированным (т.е. пользователь не мог ничего нажимать, вводить и как то с ним еще взаимодействовать) до тех пор, пока дополнительное не будет закрыто. Как я могу это сделать?

Answer 1

Вам надо указать модальность APPLICATION_MODAL и использовать метод showAndWait():

stage.initModality(Modality.APPLICATION_MODAL);
stage.showAndWait();

Если надо заблокировать только какое-то родительское окно, то это окно надо указать в качестве владельца и использовать WINDOW_MODAL

stage.initOwner(primaryStage);
stage.initModality(Modality.WINDOW_MODAL);
stage.showAndWait();
READ ALSO
Как правильно задать путь файла для метода renameTo?

Как правильно задать путь файла для метода renameTo?

Если для второго файла задаю полный путь - то изменение имени не происходит

246
Как выполнить INSERT использую JDBC?

Как выполнить INSERT использую JDBC?

Вопрос следующий, есть запрос:

278
Не работает jetty в Eclipse!

Не работает jetty в Eclipse!

Создал новый Spring MVC и добавил в pomxml плагин jetty

333
Как определить закрытие соккета

Как определить закрытие соккета

Есть сервер, слушающий порт и множество клиентов, которые к нему подключаются, что-то делают и потом отключаются

231