подключение пользовательского интерфейса построителя сцены fxml с приложением javafx

Я разработал пользовательский интерфейс в конструкторе сцен javafx, который имеет простую кнопку в области стека. И я назвал класс контроллера как simplecclass. Я сохранил fxml как simple.fxml. Я создал класс контроллера в netbeans, который просто печатает сообщение при нажатии кнопки.

В java NewFXBuilder я загрузил simple.fxml. Пожалуйста, найдите ниже код NewFXBuilder.java.

package javafxapplication2;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Stage;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.fxml.FXMLLoader;

public class NewFXbuilder extends Application {

    @Override
    public void start(Stage primaryStage) {
        try {
            StackPane page = (StackPane) FXMLLoader.load(NewFXbuilder.class.getResource("simple.fxml"));
            Scene scene = new Scene(page);
            primaryStage.setScene(scene);
            primaryStage.setTitle("FXML is Simple");
            primaryStage.show();
        } catch (Exception ex) {
            Logger.getLogger(NewFXbuilder.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public static void main(String[] args) {
        Application.launch(NewFXbuilder.class, (java.lang.String[])null);
  }
}

Мои файлы simple.fxml, simplecclass.java и NewFXbuilder.java находятся в одной папке javafxapplication2.

при запуске NewFXBuilder.java, но выдает следующую ошибку.

запуск javafxapplication2.NewFXbuilder СЕРЬЕЗНО: null javafx.fxml.LoadException: java.lang.ClassNotFoundException: simplecclass


person crazyvi    schedule 25.02.2013    source источник


Ответы (2)


запуск javafxapplication2.NewFXbuilder СЕРЬЕЗНО: null javafx.fxml.LoadException: java.lang.ClassNotFoundException: simplecclass

Похоже, проблема в файле FXML. Убедитесь, что вы импортируете simplecclass в файл FXML.

person Puce    schedule 26.02.2013
comment
Спасибо за ваш ответ. Я исправил это. Ошибка, которую я сделал, заключалась в том, что я забыл добавить имя пакета java в поле имени класса контроллера в построителе сцен. Это должно было быть packagename.simplecclass, но я дал только simplecclass. - person crazyvi; 28.02.2013
comment
Да, вы должны либо использовать полное имя класса, либо использовать оператор импорта. - person Puce; 28.02.2013

Ошибка, которую я сделал, заключалась в том, что я забыл добавить имя пакета java в поле имени класса контроллера в построителе сцен. Это должно было быть packagename.simplecclass, но я дал только simplecclass, что является ошибкой.

person crazyvi    schedule 28.02.2013