java—有没有一种方法可以在不使用swing的情况下隐藏javafx应用程序,使其不显示在系统托盘中?

nukf8bse  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(270)

假设我有一个类扩展了 Application 班级,也是这样(这是我在另一篇文章中找到的一个web浏览器实现示例)

public class WebViewBrowser extends Application {
    @Override
    public void start(Stage stage) throws Exception {
        stage.setScene(new Scene(new WebViewPane("http://google.com")));
        stage.setFullScreen(true);
        stage.show();
    }

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

class WebViewPane extends Pane {
    final WebView view = new WebView();
    final Button goButton = createGoButton(view.getEngine());

    public WebViewPane(String initURL) {
        view.getEngine().load(initURL);

        getChildren().addAll(view, goButton);

        initLayout();
    }

    private Button createGoButton(final WebEngine eng) {
        Button go = new Button("Refresh");
        go.setDefaultButton(true);
        go.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent event) {
                eng.reload();
            }
        });

        return go;
    }

    private void initLayout() {
        setMinSize(500, 400);
        setPrefSize(1024, 768);

        view.prefWidthProperty().bind(widthProperty());
        view.prefHeightProperty().bind(heightProperty());

        goButton.setLayoutX(10);
        goButton.layoutYProperty().bind(heightProperty().subtract(20).subtract(goButton.heightProperty()));
    }
}

我想解决的问题是javafx应用程序在运行时在系统托盘中显示了一个图标。我将使用这个应用程序覆盖在另一个正在运行的程序之上。因此,如果显示系统托盘中的图标,则看起来不专业。我在这里看到过这个堆栈溢出的帖子,但是我希望避免在我的程序中添加swing,因为要使这两个gui-api相互匹配会很麻烦。我在帖子中听到一个答案,在javafx8和更高版本中这是可能的。有人知道如何隐藏这个javafx应用程序,不让它只使用javafx而不使用swing显示在系统托盘中吗?谢谢。
图片:

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题