Является новым для JavaFX и меняя только компонент сцены при нажатии кнопки, в то время как другие компоненты сцены остаются неизменными, это дает мне трудные времена. У меня есть splitpane с 2 подразделениями. Одна часть содержит HBox с кнопками и VBox - с другой. Как я могу заменить VBox в зависимости от нажатой кнопки? заранее спасибо, Ниже мой пример код:Как заменить компонент сцены нажатием кнопки inJavaFX
public class ShoolLibrary extends Application {
BorderPane b_pane;
SplitPane common;
Scene scene;
@Override
public void start(Stage primaryStage) {
primaryStage.setTitle("The Library");
b_pane = new BorderPane();
common = commonGround();
b_pane.setCenter(common);
scene = new Scene(b_pane, 700, 480);
primaryStage.setScene(scene);
primaryStage.show();
}
//Main Content
private SplitPane commonGround(){
HBox hb = new HBox(); //Holds Buttons for Action
VBox vb = new VBox(); //This should change depending on button click
Button btn1 = new Button("library profile");
Button btn2 = new Button("Books");
Button btn3 = new Button("Members");
//Button Action
btn1.setOnAction(actionEvent -> /*Replace vb with profile()*/);
btn2.setOnAction(actionEvent -> /*Replace vb with books()*/);
btn2.setOnAction(actionEvent -> /*Replace vb with members()*/));
hb.getChildren().addAll(btn1,btn2,btn3);
SplitPane sp = new SplitPane();
sp.setOrientation(Orientation.HORIZONTAL);
sp.getItems().addAll(hb,vb);
return sp;
}
private VBox profile(){
txt = new Text("Inside library profile");
VBox vbx1 = new VBox();
vbx1.getChildren().add(txt);
return vbx1;
}
private VBox books(){
txt = new Text("Inside books");
VBox vbx1 = new VBox();
vbx1.getChildren().add(txt);
return vbx1;
}
private VBox members(){
txt = new Text("Inside Members");
VBox vbx1 = new VBox();
vbx1.getChildren().add(txt);
return vbx1;
}
public static void main(String[] args) {
launch(args);
}
}
возможно дубликат [Загрузка нового FXML в одной и той же сцены] (http://stackoverflow.com/questions/18619394/ loading-new-fxml-in-the-same-scene) – ItachiUchiha
@ ItachiUchiha, я не хотел включать fxml. –