Я ничего не могу найти по этому поводу, и я не уверен, возможно ли это, но я постараюсь. У меня есть приложение JavaFX, показывающее этап, когда вы начинаете вводить текст (оно слушает вводы ОС). Все работает нормально, кроме случаев, когда приложение установлено в полноэкранном режиме на MacOS. Этап не будет отображаться над приложением, даже если Alwaysontop имеет значение true.
Единственный способ заставить это работать - использовать JDialog в Type.POPUP, но это вызывает другие проблемы в моем коде. Я пытался играть с уровнем окна, но он не работает.
Вот тест, который я провел, чтобы проверить проблему. Это будет относиться к любому приложению, кроме случаев, когда оно в полноэкранном режиме.
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import javafx.stage.StageStyle;
public class ontopTest extends Application{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(final Stage stage){
Scene scene = new Scene(new Pane(new Label("test application")));
stage.setTitle("test");
stage.initStyle(StageStyle.UNDECORATED);
stage.setWidth(300);
stage.setHeight(300);
stage.setScene(scene);
// stage.setAlwaysOnTop unneeded as com.sun.glass.ui sets window to top
stage.setY(0); // Set Y Axis to 0
// Need to show window first
stage.show();
com.sun.glass.ui.Window.getWindows().get(0).setLevel(3);
// Set window level to 3 (Maximum)
}
}
Я хочу знать, возможно ли это с помощью JavaFX или любого другого обходного пути. Я хочу, чтобы мой вид был поверх любого приложения, даже на весь экран.