当前位置: 首页 > 知识库问答 >
问题:

对用户隐藏Javafx实现

叶煌
2023-03-14

因此,目前我正在处理一个项目,其中我需要在一个方法中启动一个快速javafx窗口。由于我不想让类扩展应用程序,我的解决方案是创建一个扩展应用程序的内部类,并通过创建内部类的实例和调用内部类中的launch在方法中启动javafx窗口,如下所示。

public void createWindow() {
    Fx window = new Fx();
    window.launchWindow();
}

public static class Fx extends Application {
    private void launchWindow() {
        launch();
    }

    public void start(Stage stage) {
        //javafx code
    }
}

共有1个答案

公良向阳
2023-03-14

使用application.launch并不是启动JavaFX运行时的唯一方法,它只是标准的和最常用的选项。另一个选择是使用platform.startup(Runnable)(JavaFX9+)。该方法将启动JavaFX运行时,并在JavaFX应用程序线程上调用给定的runnable

Platform.startup(() -> {
    Stage stage = new Stage();
    stage.setScene(/* your built scene */);
    stage.show();
});

在这个设置中,有一些重要的事情需要记住:

>

  • 每个JVM实例只能启动一次JavaFX运行时;第二次调用startup将导致IllegalStateException。如果您的方法可以被多次调用,那么您需要使用platform.runlater(Runnable)进行第二次和后续调用。

    如果您使用的是Java9+,那么另一个(或者至少是免费的)选择是使用模块。将应用程序类放在一个只导出到javafx.graphics模块的包中。这将阻止其他模块访问您的应用程序类-即使它是公共的。

    module app {
        requires javafx.graphics;
        exports com.example to javafx.graphics;
    }
    

    注意:这并不能阻止人们使用类路径或使用--add-exports,但这将是“错误地使用库”,这意味着没有指定行为。

  •  类似资料:
    • 问题内容: 如何隐藏HBox中的项目,并使该项目使用的空间可用于其他项目。 在上面的代码中,当图例窗格隐藏时,我希望图表节点使用所有可用空间。 问题答案: 在调用legendPane.setVisible之前,请调用: 所述Node.managed特性防止一个节点在一个场景影响其他场景节点的布局。

    • 我在JavaFX中有一个这样的表: @FXML私有表视图表EF; 例如,当我按下一个按钮或更改ComboBox中的值时,如何将它从GUI中完全隐藏起来,当我按下另一个按钮或再次更改ComboBox中的值后,如何使它再次可见? 编辑: Edit2:问题“JavaFX - setVisible不会”隐藏“元素”不是一个解决方案,因为对他来说,setInvisible是有效的,因为它使vBox不可见,只

    • 我使用本教程在JavaFX2中创建了自己的TreeView。但是,我想隐藏我的根节点。 现在看起来是什么样子: null null null null 谢谢,木木

    • 我正在开发一个Java应用程序,使用JavaFX作为它的用户界面。 在OSX Mavericks中,当我使用FileChooser类从计算机硬盘加载CSV文件时,该对话框会显示所有文件和文件夹,甚至是隐藏的文件和文件夹,它们会产生大量噪音,很难找到所需的文件。 此屏幕截图说明了我所说的内容: 我认为这可能是一个OS X问题,但我不知道如何修复,至少我不知道如何使用JavaFX FileChoose

    • 问题内容: 我想要一个不会在单击时自动隐藏的MenuItem(更具体地说是CheckMenuItem)。我知道CustomMenuItem具有此功能,但它应该是CheckMenuItem。 问题答案: 在构造函数中使用CustomMenuItem,setHideOnClick和CheckBox。 编辑: 我只是注意到JavaFX 8u40中将其弄乱了。菜单项的文本颜色与背景颜色相同,因此看不到任何

    • 我们想隐藏“有优惠券吗?添加一张…”在WooCommerce结账时,如果已添加优惠券或客户在结账页面上添加优惠券。 目前,我们在下面有此代码,当客户在购物车页面输入优惠券,然后导航到结帐页面时,此代码有效。在这种情况下,“拥有优惠券?添加一张…”消息不可见。如果购物车页面上未添加优惠券,则消息可见。 这很好用!但是,当客户在结账页面上添加优惠券时,它不起作用。 1.)我们收到消息“优惠券已添加”,