link to a solution Я создал ранее для модальных диалогов в JavaFX 2.1. Решение создает модальный этап поверх текущей ступени и принимает меры по результатам диалога с помощью обработчиков событий для элементов управления диалогового окна.
Update
Настоятель связано решение использует устаревшую обработчика событий подход к принятию решения после того, как диалог был удален с поля. Этот подход был действителен для реализации до JavaFX 2.2. Для JavaFX 8+ нет необходимости в обработчиках событий, вместо этого используйте новый метод Stage showAndWait()
. Например:
Stage dialog = new Stage();
// populate dialog with controls.
...
dialog.initOwner(parentStage);
dialog.initModality(Modality.APPLICATION_MODAL);
dialog.showAndWait();
// process result of dialog operation.
...
Обратите внимание, что, для того, чтобы вещи, чтобы работать, как и ожидалось, это важно для инициализации владельца рабочей и инициализировать модальность Stage либо WINDOW_MODAL или APPLICATION_MODAL.
Есть несколько высококачественных диалоговых окон пользовательского интерфейса в JavaFX 8 и ControlsFX, если они соответствуют вашим требованиям, я советую использовать их, а не разрабатывать свои собственные. В встроенных классах JavaFXи Alert также есть методы initOwner
и initModality
и showAndWait
, так что вы можете установить для них модальность по вашему желанию (обратите внимание, что встроенные диалоги по умолчанию являются модальными приложениями).
Библиотека ControlsFX разработана для JavaFX версии 8.0 и выше, которая будет выпущена в первом квартале 2014 года, поэтому ее следует учитывать. – bazeusz
@jewelsea есть ли функция filechooser для javafx 1.3? –
Авинаш, лучше задать новый вопрос как новый вопрос. JavaFX 1.3 устарел, я не советую его использовать. Я не думаю, что у него был файл FileChooser, хотя вы могли бы использовать Swing [JFileChooser] (https://docs.oracle.com/javase/8/docs/api/javax/swing/JFileChooser.html) с этим. – jewelsea