Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / javaFx Смена окон после Alert / 6 сообщений из 6, страница 1 из 1
10.05.2016, 18:43
    #39232755
DNShark
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javaFx Смена окон после Alert
В общем у меня такая ситуация. Есть два окна. Основное и дочернее. Создаю дочернее по нажатию 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
10.05.2016, 18:54
    #39232762
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
javaFx Смена окон после Alert
DNShark,

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

1. старт



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



3. нажимаю ок



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

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

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



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


норм стало.

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

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

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


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