我有
后者不起作用,即使我将setAlwaysOnTop(true)
用于第二阶段,一旦用户点击主要阶段,它们将在主要阶段后消失。
这仅在主要舞台处于全屏模式时发生,如果主要舞台未处于全屏模式,一切正常。
如何在全屏舞台前启用这个工具窗口概念?示例代码:
public class Test extends Application {
@Override
public void start(Stage stage) {
VBox vbox = new VBox();
Scene scene = new Scene(vbox);
stage.setScene(scene);
Button button1 = new Button("New Tool Window");
button1.setOnAction((e) -> {
Stage toolStage = new Stage();
Scene toolScene = new Scene(new Label("Am I on top?"), 300, 250);
toolStage.setScene(toolScene);
toolStage.initOwner(stage);
toolStage.setAlwaysOnTop(true);
toolStage.show();
});
Button button2 = new Button("Close");
button2.setOnAction((e) -> System.exit(0));
vbox.getChildren().addAll(button1, button2);
stage.show();
stage.setFullScreen(true);
}
public static void main(String[] args) {
launch(args);
}
}
2016年8月20日更新:确认为错误:JDK-8164210
答案 0 :(得分:0)
绕过此限制的一种方法是: 取消激活全屏模式 为psuedo全屏创建一个keyCombination 将舞台风格设置为未修饰且不可调整大小 将屏幕设置为用户屏幕的大小,并将其定位在0,0。
很容易创建自己的边框以最小化和关闭程序,如下所示:
JavaFX Stage.setMaximized only works once on Mac OSX (10.9.5)
在这里:
答案 1 :(得分:0)
你需要在设置initowner
之后设置initmodalitytoolStage.initOwner(stage);
toolStage.initModality(Modality.APPLICATION_MODAL);