2016-11-19 11 views
0

のペインとペインの内容を設定する私の質問は、これらの2とほぼ同じである:は別のFXMLファイル

からJavaFX how to inject new FXML content to current Scene

- 私ので、私はこれらの答えを使用することができませんでしたset the content of a anchorPane with fxml file

両方を理解していない。 私は2つ(そして後で)のFXMLファイルを持っています。ここで、1つは「メイン」として機能し、他のFXMLファイルの内容を追加する枠を持っています。

どうすれば実装できますか?

答えて

1

プログラムエントリポイント:

public class App extends Application { 
@Override 
public void start(Stage primaryStage) throws IOException { 
    Parent startScreen 
= FXMLLoader.load(getClass().getResource("MainScreen.fxml")); 
    Scene scene = new Scene(startScreen); 
    primaryStage.setScene(scene); 
    primaryStage.show(); 

} 

/** 
* @param args the command line arguments 
*/ 
public static void main(String[] args) { 
    launch(args); 
} 

} 

MainScreenController

public class MainScreenController implements Initializable{ 

private static AnchorPane contentBox; 

@FXML 
private AnchorPane paneContent; 

public MainScreenController() throws IOException { 
    this.paneContent = FXMLLoader.load(getClass().getResource("Home.fxml")); 

} 

@Override 
public void initialize(URL url, ResourceBundle rb) { 
    MainScreenController.contentBox = this.paneContent; 
} 

public static AnchorPane getContentBox(){ 
    return MainScreenController.contentBox; 
} 

} 

そしてMainScreen.fxmlコントローラとしてMainScreenControllerを有する必要があり、また、FXとAnchorPaneを含有する必要がある:IDのpaneContent。 プログラムのどこからでも、getContentBox()を呼び出して.set()を使って画面を変更することができます。

関連する問題