2017-03-29 17 views
0

こんにちは私は自分の仕事のためにPINジェネレータを開発しています。私は全く新しいJavaですので、特にJavaFXを使用する場合には少し難しかったです。 私は、各ボタンの1つをクリックすると、プログラムに別の.fxmlファイルを表示させたいと思っています。私は、シーンの各ボタンのコントローラクラスを作成しているボタン上のJavaFX 8をクリックして他のシーンを表示

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
public class main extends Application { 
    public static void main(String[] args) { 
     Application.launch(main.class, args); 
    } 
     @Override 
     public void start(Stage stage) throws Exception { 
      Parent root = FXMLLoader.load(getClass().getResource("/view/main.fxml")); 

      stage.setTitle("PIN-Generator"); 
      stage.setScene(new Scene(root, 600, 400)); 
      stage.show(); 
     } 
    } 

は、ここに私のコードです。

コントローラクラスコード:

package view; 

import javafx.fxml.FXML; 
import javafx.scene.control.Button; 
import javafx.scene.control.Label; 

public class MainController { 

    @FXML 
    private Label dpmadirektpropingenerator; 
    @FXML 
    private Button unlockPinButton; 
    @FXML 
    private Button confirmationPinButton; 
} 
+0

はここでそれが役立つかもしれない同じ質問についての答えです/ 27160951/javafx-open-another-fxml-in-the-another-window-with-button – boooom

答えて

0

このコードは、必要がある作品。
このようなあなたのメインクラスに変更します

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 
public class main extends Application { 
public static void main(String[] args) { 
    Application.launch(main.class, args); 
} 
    static Stage stg; 
    @Override 
    public void start(Stage stage) throws Exception { 
    this.stg = stage; 
     Parent root = FXMLLoader.load(getClass().getResource("/view/main.fxml")); 
     stage.setTitle("PIN-Generator"); 
     stage.setScene(new Scene(root, 600, 400)); 
     stage.show(); 
    } 
} 

、ここでは、あなたのpressButton機能は次のとおりです。http://stackoverflow.com/questions:

public void pressButton(ActionEvent event){    
    try { 
    FXMLLoader fxmlLoader = new FXMLLoader(getClass().getResource("sedondFXML.fxml")); 
      Parent root = (Parent) fxmlLoader.load(); 
      Stage stage = new Stage(); 
      stage.setScene(new Scene(root)); 
      stage.show(); 
      main.stg.close(); 
    } catch(Exception e) { 
     e.printStackTrace(); 
     } 
} 
+0

これは私のメインコードでいくつかの編集を行った後にうまくいった:) – kinansaeb

+0

どうもありがとう第1ステージは第2ステージを開くとき? – kinansaeb

+0

@kinansaeb私は私の答えを編集しました –

関連する問題