最初の作業コード:
val root: BorderPane = new BorderPane(jfxf.FXMLLoader.load(getClass.getResource("/GUI/main.fxml")))
stage = new PrimaryStage()
{
title = "FXML Test"
scene = new Scene(root)
}
ここでは問題ありません。今、私は次のように i18n サポートを追加したかった:
val bundle: ResourceBundle = new PropertyResourceBundle(getClass.getResource("/i18n/en.properties").openStream)
val loader: FXMLLoader = new FXMLLoader(getClass.getResource("/GUI/main.fxml"), bundle)
val root = loader.load[jfxs.Parent]
stage = new PrimaryStage()
{
title = "FXML Test"
scene = new Scene(root)
}
現在、コンストラクターscene = new Scene(root)
を解決できません。
私はこれを解決しようとしました
1) 次のように、新しい BorderPane を初期化します。
val root = new BorderPane(loader.load[jfxs.Parent])
しかし、BorderPaneのコンストラクターが解決できないので、試してみました
2) 次のように、BorderPane にキャストします。
val root = new BorderPane(loader.load[jfxs.Parent].asInstanceOf[BorderPane])
これは IDE では問題ありませんが、コンパイラ エラーがスローされます。
原因: java.lang.ClassCastException: javafx.scene.layout.BorderPane は scalafx.scene.layout.BorderPane にキャストできません
どうすればこれを解決できますか?