E(fx)clipseとJavaSceneBuilderを使用してJavaFXアプリケーションを構築しています。
基本的な機能はログインウィンドウです。ログインすると、新しいウィンドウが開き、ログインウィンドウが消えます。現在、プロトタイプの段階にあります。
ecpliseが足りなくなったとき、私が欲しい機能はすべてそこにあります。ログインウィンドウが起動時に表示されます(コードはそのように見えます)
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("view/login.fxml"), ResourceBundle.getBundle("ca.sportstats.resources.labels"));
primaryStage.setTitle("SportStats Live Update Tool : Login");
primaryStage.setScene(new Scene(root, 450, 300));
primaryStage.show();
} catch (IOException e) {
//Change this to open a small popup window.
System.out.println("Could not deploy");
}
}
public static void main(String[] args) {
launch(args);
}
このウィンドウには、単に別のボタンを開くボタンが1つあります(ログインロジックは後で表示され、ここでは問題になりません)。
btnLogin.setOnAction(new EventHandler<ActionEvent>() {
public void handle(ActionEvent event) {
//TODO: Login logic.
//On success allow to open the tool (aka main window);
Parent root;
try {
root = FXMLLoader.load(getClass().getResource("../view/selector.fxml"), resources);
Stage stage = new Stage();
stage.setTitle("Selector");
stage.setScene(new Scene(root, 450, 450));
stage.show();
//hide this current window
((Node)(event.getSource())).getScene().getWindow().hide();
} catch (IOException e) {
e.printStackTrace();
}
}
});
これはEcpliseでは問題なく機能します。しかし!これをビルドすると(e(fx)clipseチュートリアルで説明されている方法で、実行可能jarが取得されますが、ログインウィンドウしか取得されません。ボタンをクリックしても、2番目のウィンドウは表示されません。