powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / javaFx Смена окон после Alert
6 сообщений из 6, страница 1 из 1
javaFx Смена окон после Alert
    #39232755
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В общем у меня такая ситуация. Есть два окна. Основное и дочернее. Создаю дочернее по нажатию Open. И после выскакивания диалогового окна у меня второстепенное окно становится первым.

А как сделать так чтобы оно не выпрыгивало, если у меня много окон?

Последовательность действий: 1. открываем новое окно (click open)
2. выбираем основное окно
3. нажимаем test (выскакивает диалоговое окно после которого, почему-то вспомогательное окно становится первым).

Main.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
public class Main extends Application {

    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent parent = FXMLLoader.load(getClass().getResource("sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(parent, 300, 275));
        primaryStage.show();
    }


    public static void main(String[] args) {
        launch(args);
    }

}



Controller.java
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
public class Controller {
    public void open(ActionEvent actionEvent) {
        Parent root = null;
        try {
            FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("window.fxml"));
            Parent root1 = (Parent) fxmlLoader.load();
            Stage stage = new Stage();
            stage.setTitle("ABC");
            stage.setScene(new Scene(root1, 300, 275));
            stage.show();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void test(ActionEvent actionEvent) {
        Alert alert = new Alert(Alert.AlertType.INFORMATION);
        alert.setTitle("Information Dialog");
        alert.setHeaderText("Look, an Information Dialog");
        alert.setContentText("I have a great message for you!");
        alert.showAndWait();
    }
}



sample.fxml

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?import javafx.scene.control.Button?>
<?import javafx.scene.layout.*?>
<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
    <columnConstraints>
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
        <ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
    </columnConstraints>
    <children>
    <Button onAction="#open" text="Open">
    </Button>

    <Button onAction="#test" text="Test" GridPane.columnIndex="1"/>
    </children>
</GridPane>




window.fxml


Код: java
1.
2.
3.
4.
5.
6.
7.
8.
<?import javafx.scene.layout.GridPane?>

<?import javafx.scene.control.Button?>

<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">

</GridPane>


...
Рейтинг: 0 / 0
javaFx Смена окон после Alert
    #39232762
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DNShark,

Alert по задумке не модальный? Похоже на какой-то баг с событиями.
...
Рейтинг: 0 / 0
javaFx Смена окон после Alert
    #39232764
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DNSharkу меня второстепенное окно становится первым.
И ещё бы терминологию прояснить. Потому что первый и второй это смотря откуда считать. Есть окно в фокусе и не в фокусе. Можно скриншотом, например, показать.
...
Рейтинг: 0 / 0
javaFx Смена окон после Alert
    #39232882
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,
ок, со скринами

1. старт



2. нажимаю тест



3. нажимаю ок



основное окно поменялось со второстепенным.

По поводу модальности там стоит showAndWait() ну пока так.
...
Рейтинг: 0 / 0
javaFx Смена окон после Alert
    #39233074
DNShark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добавил

Код: java
1.
alert.initModality(Modality.WINDOW_MODAL);



норм стало. Всем спасибо).
...
Рейтинг: 0 / 0
javaFx Смена окон после Alert
    #39233083
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DNSharkДобавил
Код: java
1.
alert.initModality(Modality.WINDOW_MODAL);


норм стало.

Ну, там ещё initOwner() очень не помешает.

DNSharkВсем спасибо).
Нормально. Подсказывал я, а "спасибо" всем.

Вообще в таких случаях надо события в очереди смотреть. Какое-то событие прилетает окну и оно становится активным. Надо смотреть откуда и почему оно туда прилетает.
Интересно на сколько это сложно в JavaFX. Не приходилось ещё ковырять там очередь. Сильно ли она отличается от AWT-шной?
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / javaFx Смена окон после Alert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]