public class JavaFXApplication2 extends Application {
@Override
public void start(Stage primaryStage) {
VBox root = new VBox();
ComboBox comboSelect = new ComboBox(FXCollections.observableArrayList("1","5","10"));
comboSelect.valueProperty().addListener((ObservableValue observable, Object oldValue, Object newValue) -> {
System.err.println("value: "+newValue);
VBox rootPane = (VBox)comboSelect.getParent().getParent();
ObservableList<Node> panesList = ((VBox)((ScrollPane)(rootPane.getChildren().get(1))).getContent()).getChildren() ;
panesList.clear();
for(int i=0; i<=Integer.parseInt(newValue.toString())-1 ;i++){
panesList.add(new MyAnchorPane());
}
});
//ScrollPane может содержать только 1 ноду в себе, поэтому добавляем что то чем сможем управлять, к примеру VBox
ScrollPane scrollPane = new ScrollPane(new VBox(5));
root.getChildren().addAll(new AnchorPane(comboSelect),scrollPane);
primaryStage.setTitle("Test");
primaryStage.setScene(new Scene(root, 300, 250));
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
class MyAnchorPane extends AnchorPane{
final Random rng = new Random();
public MyAnchorPane() {
super();
String style = String.format("-fx-background: rgb(%d, %d, %d);"+
"-fx-background-color: -fx-background;",
rng.nextInt(256),
rng.nextInt(256),
rng.nextInt(256));
this.setStyle(style);
this.setMinSize(30, 30);
}
}
}