java - 使用 JavaFX 将可执行 Jar 限制为一个窗口

标签 java eclipse javafx-2 executable-jar scenebuilder

我正在通过 E(fx)clipseJava Scene Builder 构建 JavaFX 应用程序。

基本功能是登录窗口。登录后,将打开新窗口,然后登录窗口消失。目前还处于原型(prototype)阶段。

当 ecplise 用完时,我想要的功能都有了。登录窗口在启动时显示(代码如下)

@Override
public void start(Stage primaryStage) {
    try {
        Parent root = FXMLLoader.load(getClass().getResource("view/login.fxml"), ResourceBundle.getBundle("ca.sportstats.resources.labels"));

        primaryStage.setTitle("SportStats Live Update Tool : Login");
        primaryStage.setScene(new Scene(root, 450, 300));
        primaryStage.show();
    } catch (IOException e) {
        //Change this to open a small popup window.
        System.out.println("Could not deploy");
    }
}

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

此窗口上有一个按钮,只需打开另一个按钮(登录逻辑稍后会出现,这里不是问题)。

    btnLogin.setOnAction(new EventHandler<ActionEvent>() {
        public void handle(ActionEvent event) {

            //TODO: Login logic.
            //On success allow to open the tool (aka main window);

            Parent root;
            try {
                root = FXMLLoader.load(getClass().getResource("../view/selector.fxml"), resources);
                Stage stage = new Stage();
                stage.setTitle("Selector");
                stage.setScene(new Scene(root, 450, 450));
                stage.show();

                //hide this current window
                ((Node)(event.getSource())).getScene().getWindow().hide();

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    });

这在 Ecplise 中没有问题。但!当我构建这个(以描述的方式 on the e(fx)clipse tutorials 时,我得到一个可执行 jar,但只得到登录窗口。当我单击按钮时,第二个窗口不会显示。

最佳答案

我认为问题是在 jar 中你不能做相对路径。在 Eclipse 内部,您运行在文件系统上,这不是问题

关于java - 使用 JavaFX 将可执行 Jar 限制为一个窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14241283/

相关文章:

eclipse - 如何向 Eclipse 工具栏添加按钮?

java - 设置 Eclipse 以使用 Java EE

JavaFX:无效属性错误

javafx tableview 未从 fxml 加载(为 null)

JavaFX - TableView 在一行上应用样式(过滤数据后)

java - 如何在 Java 中计算 2 个持续时间之间的数值差异(使用 mpxj 库)?

java - 在远程位置压缩文件夹

java - Log4j 2.0 - 将更多转换说明符作为一个元素填充在一起

Java 嵌套 for 循环(内部 for 循环中有 if 语句)

eclipse - 传播 IntelliJ IDEA 项目设置