私はJavaFXを使用していて、今はSchoolprojectで作業しています。別のクラスのActionEventを処理する方法
私のプログラムについて、私はログイン画面を持っています。私がログインを押すと、私はメインフレームに来ます。メニューバーのボタンを使用するときにメインフレームを構築するAnchorPaneのコンテンツをロードするため、メインフレームのコンテンツ領域は空です。
私がログインボタンを押すと、メインフレームとホームペインをその中に描こうと思っています。しかし、別のクラスからメインフレームにペインをロードする方法がわかりません。
ここに私のコード:
コードメインフレームをロードする:メインフレームに自宅ペインをLAODする
@FXML
protected void login(ActionEvent event) throws IOException, URISyntaxException {
Stage stage;
Parent root = null;
stage = (Stage) btnLogin.getScene().getWindow();
try{
root = FXMLLoader.load(getClass().getResource("view/mainframe.fxml"));
} catch (IOException e){
e.printStackTrace();
}
Scene scene = new Scene(root, 1280, 900);
stage.setScene(scene);
stage.show();
}
コード:
@FXML
protected void mHome(ActionEvent event) throws IOException, URISyntaxException {
try {
URL url = getClass().getResource("view/home.fxml");
FXMLLoader fxmlLoader = new FXMLLoader();
fxmlLoader.setLocation(url);
fxmlLoader.setBuilderFactory(new JavaFXBuilderFactory());
AnchorPane page = (AnchorPane) fxmlLoader.load(url.openStream());
aContent.getChildren().clear();
aContent.getChildren().add(page);
}
catch (IOException e) {
e.printStackTrace();
}
}
これらの2つの方法が異なるクラスです。あなたには、いくつかのより多くの情報が必要な場合
、私に知らせてください:)
ありがとうと挨拶し、ティモ
OK、試してみました。問題は今私がこれをコードに実装したことです: 'aContent.getChildren()。clear(); aContent.getChildren()。add(ページ); ' 新しいfxmlをペインに追加する前に、AnchorPane aContentをクリアします。しかし、今は空ですので、それをクリアすることはできませんし、私にエラーを与える... – TeemoBiceps