JavaFX HelloWorld 程序仅打开一个蓝色的 Java 文件夹,而不是 UI 窗口

问题描述 投票:0回答:2

我在 stackoverflow 上的第一个问题:

我使用的是 MacOS BigSur 11.5.2、2.3 GHz 双核 i5、8GB。我正在使用 Eclipse IDE for Java v4.17。我已经从 gluonhq.com 下载并配置了 JavaFX SDK (v11.0.2)

我正在尝试运行一个基本的 JavaFX HelloWorld 程序(很常见,随处可见)。当我运行这个程序时,它所做的只是在桌面任务栏中打开一个蓝色的 Java 文件夹;它不会打开一个名为“Hello World”的新 UI 窗口。

  • 我已将 JavaFX SDK 外部库添加到项目的构建路径中。

  • 我已在运行配置的虚拟机参数中指定了 JavafX SDK 的正确路径。

    --模块路径/Documents/javafx-sdk-11.0.2/lib --add-modules javafx.controls,javafx.fxml

  • 我已确保在运行配置中识别 javafx.controlsjavafx.fxml 模块依赖项(我假设此处包含所有必需的

    requires transitive
    模块)。


这是我的Main.java

    package com.me.jfxapplication;
    
    import javafx.application.Application;
    import javafx.scene.Parent;
    import javafx.stage.Stage;
    import javafx.scene.Scene;
    import javafx.scene.layout.BorderPane;


public class Main extends Application {
    
    @Override
    public void start(Stage primaryStage) throws Exception {
        Parent root = javafx.fxml.FXMLLoader.load(getClass().getResource("Sample.fxml"));
        primaryStage.setTitle("Hello World");
        primaryStage.setScene(new Scene(root, 300, 275));
        primaryStage.show();
    }
    
    public static void main(String[] args) {
        launch(args);
    }
}

这是我的Sample.fxml文件

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.layout.GridPane?>

<GridPane fx:controller="com.cowsill.jfxapplication.Controller"
    xmlns:fx="javafx.com/fxml" alignment="center" hgap="10" vgap="10">
</GridPane>

这是我的module-info.java

    module com.me.jfxapplication {
    exports com.me.jfxapplication;

    requires javafx.base;
    requires javafx.fxml;
    requires javafx.graphics;
}

我还尝试通过以下方式在命令行上运行它:

javac --module-path ~/Documents/javafx-sdk-11.0.2/lib/ --add-modules javafx.controls,javafx.fxml jfxapplication/Main.java

 java --module-path ~/Documents/javafx-sdk-11.0.2/lib/ --add-modules javafx.controls,javafx.fxml jfxapplication/Main.java

在搜索网络资源后,似乎有很多关于 JFX 模块依赖关系的重复问题。我浏览了其他人遇到的问题的每个实例,并反映了他们建议的每个错误修复。我的程序正在运行是吗?它只是不显示场景图/UI。

谢谢!

user-interface javafx module require
2个回答
1
投票

使用 Eclipse IDE 时,单击“运行”->“运行配置...”->“Java 应用程序”->“您的项目”->“参数”。

确保未选中复选框“使用 SWT 启动时使用 -XstartOnFirstThread 参数”。

这应该可以解决问题。


0
投票

我的Mac现在也有同样的问题,你找到解决方案了吗?每次我运行 javafx(简单计算器,甚至 hello world)代码时,它都会变成这个蓝色的 java 文件夹。

© www.soinside.com 2019 - 2024. All rights reserved.