【问题标题】:JavaFx: Can't call Main class in another package? (IntelliJIdea)JavaFx:不能在另一个包中调用 Main 类? (IntelliJ 理念)
【发布时间】:2020-07-03 07:31:23
【问题描述】:

我刚开始使用 intelliJ 创建 JavaFx 项目并成功运行。我正在使用 JDK 11,并且创建了一个模块信息。但是,当我创建另一个包并移动 Main 类时,它不再运行。

主类:

package com.main;

import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;

public class Main extends Application {
@Override
public void start(Stage primaryStage) throws Exception{
    Parent root = FXMLLoader.load(getClass().getResource("/src/sample/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

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

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<GridPane fx:controller="sample.Controller"
          xmlns:fx="http://javafx.com/fxml" alignment="center" hgap="10" vgap="10">
</GridPane>

模块信息

module ProjectJavaFxA {
    requires javafx.fxml;
    requires javafx.controls;

    opens sample;
}

控制器类

package sample;

public class Controller {
}

New Image

【问题讨论】:

  • 尝试将您的示例文件夹移动到 com.main
  • 我特意创建了另一个包,并将其分离成 fxml。我怎样才能在不移动任何东西的情况下完成这项工作?
  • hmm .. 为什么不按照错误信息中的说明进行操作?
  • 你可以将你的fxml文件分离到resources文件夹中,并在IntelliJ中将该文件夹标记为资源
  • 如果您在这个项目中没有使用 Kotlin - 禁用 Kotlin 捆绑插件(设置/首选项 | 插件)是否有帮助?

标签: java intellij-idea javafx


【解决方案1】:

您可以通过在您的module-info.java 文件中导出您的包sample 来解决问题,像这样更新您的文件,它应该可以解决问题 -

模块信息.java

module ProjectJavaFxA {
    requires javafx.fxml;
    requires javafx.controls;

    exports sample;
    opens com.main;
}

希望这会有所帮助!

【讨论】:

  • exports sample; 中仍然出现错误(错误:java:包为空或不存在:示例)
  • 您可以将您的项目结构发布到问题中吗?
  • 在我将样本交换到 com.main 后甚至出现同样的问题
  • 你可以尝试在你的 module-info.java 中添加 requires kotlin.stdlib requires javafx.fxml
  • 错误:找不到模块 kotlin.stdlib
猜你喜欢
  • 2011-10-07
  • 1970-01-01
  • 2015-08-08
  • 2011-06-05
  • 2012-03-20
  • 1970-01-01
  • 2017-09-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多