2016-08-26 2 views
1

Я создал очень простой файл fxml в Scene Builder для проекта JavaFX в Eclipse. Когда я пытаюсь запустить его, я получаю LoadException из-за того, что класс контроллера не найден.JavaFX Scene Builder + Eclipse; Класс контроллера не найден

Все файлы находятся в одной папке.

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 Explorer и Error

Буду признателен, если вы скажете мне, что вызывает проблему.

ответ

0

Я нашел (Facepalm).

Контроллер должен быть назван: "application.myController", потому что мой пакет называется приложением.

Смежные вопросы