1

複数のビューを持つアプリケーションを構築しようとしています。2 つのビューを正常に追加しましたが、3 番目のビューに切り替えようとするとエラーが発生します。

Exception in thread "JavaFX Application Thread" java.lang.IllegalStateException: Location is not set.
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2434)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at com.airhacks.afterburner.views.FXMLView.loadSynchronously(FXMLView.java:91)
at com.airhacks.afterburner.views.FXMLView.initializeFXMLLoader(FXMLView.java:100)
at com.airhacks.afterburner.views.FXMLView.getPresenter(FXMLView.java:179)
at com.testapp.gpa.TestApp.lambda$init$2(TestApp.java:46)
at com.testapp.gpa.TestApp.access$lambda$2(TestApp.java)
at com.testapp.gpa.TestApp$$Lambda$5.get(Unknown Source)
at com.gluonhq.impl.charm.a.d.a.a(SourceFile:32)
at com.gluonhq.charm.glisten.application.MobileApplication.switchView(SourceFile:344)
at com.gluonhq.charm.glisten.application.MobileApplication.switchView(SourceFile:312)

プロジェクトの構造

プロジェクトの構造

ホームビューからセメスタービューに切り替えることができます。しかし、CourseView に切り替えることができません。ビューは、FXMLView クラスを拡張する単なる空のクラスです。コメント サンプル アプリのプロジェクト構造に従っています。course.fxml ファイルの最初の行は次のとおりです。

<View maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="600.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/8.0.40" xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.testapp.views.courses.CoursePresenter">

これはコントローラ クラスを指します。

4

1 に答える 1

1

コメントのサンプルに従っている場合は、Gluon プラグインがプロジェクトを生成する方法と、コードとリソースを追加する必要がある場所を説明する詳細な投稿があります。

また、 Afterburnerフレームワークの使用方法についても説明します。

構成よりも規則に基づいているため、次のようなビューhomeを定義する必要があります。

  • src/main/java ディレクトリ: com.gluonhq.demo.comments.views.homeパッケージと 2 つのクラス:HomeViewHomePresenter.

  • src/main/resources ディレクトリ: com.gluonhq.demo.comments.views.homeパッケージと 2 つのファイル: home.fxmlhome.css.

プロジェクトにはhome、 、semesterおよびがありcourseます。CourseViewと を定義したことに注意してください。これが、フレームワークが例外CoursePresenterで失敗する理由です。したがって、クラスの名前をとに変更するか、fxml ファイルを に変更します。Location is not setcourse.fxmlcourses.fxmlCoursesViewCoursesPresentercourse.fxml

于 2015-11-24T21:38:15.493 に答える