2

E(fx)clipseJavaSceneBuilderを使用して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番目のウィンドウは表示されません。

4

1 に答える 1

4

The problem I think is that in jars you can't do relative paths. Inside Eclipse you are running on the filesystem where this is not a problem

于 2013-01-09T16:21:06.513 に答える