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

有没有一种方法可以在不使用Swing的情况下隐藏JavaFX应用程序,使其不显示在系统托盘中?,java,swing,javafx,system-tray,minecraft-forge,Java,Swing,Javafx,System Tray,Minecraft Forge,假设我有一个类扩展了应用程序类,也是这样。(这是我在另一篇文章中找到的一个Web浏览器实现示例) 公共类WebViewBrowser扩展应用程序{ @凌驾 public void start(Stage)引发异常{ stage.setScene(新场景)(新WebViewPane(“http://google.com"))); stage.setFullScreen(真); stage.show(); } 公共静态void main(字符串[]args){ 发射(args); } } 类WebV

假设我有一个类扩展了
应用程序
类,也是这样。(这是我在另一篇文章中找到的一个Web浏览器实现示例)

公共类WebViewBrowser扩展应用程序{
@凌驾
public void start(Stage)引发异常{
stage.setScene(新场景)(新WebViewPane(“http://google.com")));
stage.setFullScreen(真);
stage.show();
}
公共静态void main(字符串[]args){
发射(args);
}
}
类WebViewPane扩展窗格{
最终网络视图=新网络视图();
最后一个按钮goButton=createGoButton(view.getEngine());
公共WebViewPane(字符串initURL){
view.getEngine().load(initURL);
getChildren().addAll(视图,goButton);
initLayout();
}
专用按钮createGoButton(最终WebEngine工程){
按钮转到=新按钮(“刷新”);
go.setDefaultButton(true);
开始动作(新的EventHandler,但我通常不想在我的程序中添加Swing,因为要使这两个GUI API相互匹配会很麻烦。我在帖子中听到一个答案,这在JavaFX 8及以上版本中是可能的。有人知道一种方法来隐藏这个JavaFX应用程序,不让它只使用Java显示在系统托盘中吗FX和不使用Swing?谢谢

图片:

除非你想使用JavaFX GUI,否则你为什么要扩展应用程序类?应用程序是JavaFX的核心类之一?你把它放在另一个正在运行的程序上是什么意思?请你解释一下好吗???嘿@AndrewThompson我正在制作一个叫做Minecraft mod的东西,它使用内部事件来打开应用程序。我不是直接编辑GUI文件,而是将另一个应用程序放在一个临时应用程序上,以显示某种“剪切场景”只有几秒钟,或者用户决定视频的长度应该是多少。我并没有试图忽略用户体验。视频停止播放或用户单击某种“跳过”后,覆盖的屏幕将关闭按钮。您可以在此处更清楚地查看JavaFX代码:。我不确定您是否了解API,但我认为JavaFX类足以理解。我非常抱歉造成混淆。系统托盘是屏幕右下角的小通知区域。通过“系统托盘”您是指显示所有打开的窗口及其相关图标的整个任务栏吗?
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()));
    }
}