it-roy-ru.com

JavaFX 2.2 Stage всегда на высоте

У меня есть обычный JFrame (одна часть приложения) и второе окно JavaFX (я не могу использовать JFrame для этапа JavaFX). Проблема в том, что окно JavaFX всегда должно быть поверх всех других окон.

Я понятия не имею, как мне решить эту проблему! Есть идеи?

13
user1706051

Я знаю, что это старая тема, но все меняется. Переход к JDK 8u20 - это новый метод primaryStage.setAlwaysOnTop(true);

Это был бы самый простой способ сделать сцену всегда на высоте. Для раннего доступа к 8u20 посетите веб-сайт .

public class KeyholeDemo extends Application {
    @Override public void start(Stage primaryStage) {
        primaryStage.initStyle(StageStyle.TRANSPARENT);
        primaryStage.setAlwaysOnTop(true);

        // code omitted...
    }

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

Пример кода, взятый из этого Ниццы запись

26
dev009

У меня сейчас похожая проблема.

Я использую эту строку кода, чтобы получить всегда лучший эффект:

stage.initModality(Modality.APPLICATION_MODAL);

Он отлично работает для меня.

Вот это док.

13
JackTools.Net

AFAIK, нет API, чтобы JavaFX всегда был на вершине. Но вы можете поместить сцену JavaFX в JFrame, используя JFXPanel .

1
Sergey Grinev

Как это (я использую оповещение)

 Stage stage = (Stage) alert.getDialogPane().getScene().getWindow();
 stage.setAlwaysOnTop(true);

Если вы хотите, чтобы он всегда блокировал другие окна, просто установите:

alert.initModality(Modality.APPLICATION_MODAL);
1
Kefirchiks