gpt4 book ai didi

java - 如何使 JavaFX 模态子窗口不出现在 alt-tab 中

转载 作者:行者123 更新时间:2023-11-30 10:23:13 25 4
gpt4 key购买 nike

我有一个 JavaFX 应用程序,带有一个将主应用程序窗口设置为父窗口的模态窗口。当那个弹出窗口出现时,我的 Ubuntu 任务切换器 (alt-tab) 似乎认为这是一个完全不同的窗口;它和主应用程序窗口都显示为选项。我如何配置 JavaFX 以便此窗口不会作为单独的选项出现在 alt-tab 中?

这是一个最小的例子:

public class PopupExample extends Application {

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

@Override
public void start(Stage primaryStage) throws Exception {
Stage window = new Stage();
window.initOwner(primaryStage);
window.initModality(Modality.APPLICATION_MODAL);
window.show();
}
}

最佳答案

嗯,很简单,只需将StageStyle.UTILITY设置为第二个StageinitStyle即可。通过这样做,Alt+Tab 显示一个窗口。

下面的代码演示了如何处理这个问题:

import javafx.application.Application;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.layout.VBox;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.StageStyle;

public class PopupExample extends Application
{
@Override
public void start(Stage primaryStage) throws Exception
{
VBox vBox = new VBox();
vBox.setAlignment(Pos.TOP_CENTER);
Button showPopUpbutton = new Button("Show Stage_TWO");
showPopUpbutton.setOnAction(event -> showPopup());
vBox.getChildren().add(showPopUpbutton);
Scene scene = new Scene(vBox, 300, 300);
primaryStage.setScene(scene);
primaryStage.setTitle("Stage_One");
primaryStage.show();
}

private void showPopup()
{
Stage stage = new Stage();
VBox vBox = new VBox();
vBox.setAlignment(Pos.TOP_CENTER);
Label label = new Label("Stage_TWO");
Button closeStageButton = new Button("Close Stage_TWO");
closeStageButton.setOnAction(event -> stage.close());
vBox.getChildren().addAll(label, closeStageButton);
Scene scene = new Scene(vBox, 200, 200);
stage.setScene(scene);
stage.initStyle(StageStyle.UTILITY);
stage.initModality(Modality.APPLICATION_MODAL);
stage.setTitle("Stage_TWO");
stage.show();
}

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

关于java - 如何使 JavaFX 模态子窗口不出现在 alt-tab 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47189557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com