JavaFX Scene Builder + Eclipse;未找到控制器类

时间:2016-08-26 14:08:47

标签: javafx-8 scenebuilder

我在Eclipse的Scene Builder for JavaFX项目中创建了一个非常简单的fxml。 当我尝试运行它时,由于找不到控制器类,我得到LoadException。

所有文件都在同一个文件夹中。

Main.java:

package application;

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

public class Main extends Application {
@Override
public void start(Stage primaryStage) {
    try {
        AnchorPane mainAnchorPane = (AnchorPane) FXMLLoader.load(Main.class.getResource("Q1.fxml"));
        primaryStage.setScene(new Scene(mainAnchorPane));
        primaryStage.show();
    } catch(Exception e) {
        e.printStackTrace();
    }
}

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

这里是fxml文件:

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

<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.TextField?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.Pane?>

<fx:root prefHeight="417.0" prefWidth="462.0" type="AnchorPane" xmlns="http://javafx.com/javafx/8.0.60" xmlns:fx="http://javafx.com/fxml/1" fx:controller="myController">
   <children>
      <Pane layoutX="-245.0" layoutY="-261.0" prefHeight="94.0" prefWidth="117.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
         <children>
            <Button fx:id="myButton" layoutX="14.0" layoutY="14.0" mnemonicParsing="false" onAction="#onMyClick" text="Button" />
            <Label fx:id="myLabel" layoutX="14.0" layoutY="53.0" text="Label" />
            <TextField fx:id="myField" layoutX="66.0" layoutY="49.0" />
         </children>
      </Pane>
   </children>
</fx:root>

这里是controller.java:

package application;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;

public class myController {

    @FXML
    private Button myButton;

    @FXML
    private Label myLabel;

    @FXML
    private TextField myField;

    @FXML
    void onMyClick(ActionEvent event) {

    }

}

附加了Package ExplorerError

的屏幕截图

如果你能告诉我导致问题的原因,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

我找到了它(Facepalm)。

控制器应该命名为:&#34; application.myController&#34;因为我的包被称为应用程序。