import javafx.application.Application; import javafx.beans.binding.Bindings; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.scene.Scene; import javafx.scene.SceneBuilder; import javafx.scene.control.Button; import javafx.scene.control.ButtonBuilder; import javafx.scene.control.ScrollPane; import javafx.scene.control.ScrollPaneBuilder; import javafx.scene.layout.*; import javafx.stage.Stage; /** * * @author jiri */ public class Bug extends Application { /** * @param args the command line arguments */ public static void main(String[] args) { launch(args); } private HBox content1; private HBox content2; @Override public void start(Stage stage) { Button addButton = ButtonBuilder.create() .text("add") .onAction(new EventHandler() { @Override public void handle(ActionEvent arg0) { Button button = new Button("button"); button.setPrefHeight(120); content1.getChildren().add(button); button = new Button("button"); button.setPrefHeight(120); content2.getChildren().add(button); } }) .build(); Button removeButton = ButtonBuilder.create() .text("remove") .onAction(new EventHandler() { @Override public void handle(ActionEvent arg0) { if (content1.getChildren().size() > 0) { content1.getChildren().remove(0); content2.getChildren().remove(0); } } }) .build(); HBox buttons = HBoxBuilder.create() .children(addButton, removeButton) .build(); content1 = new HBox(); content1.getChildren().addAll(new Button("b u t t o n"), new Button("b u t t o n")); content2 = new HBox(); content2.getChildren().addAll(new Button("b u t t o n"), new Button("b u t t o n")); ScrollPane scrollPane1 = ScrollPaneBuilder.create() .content(content1) .build(); ScrollPane scrollPane2 = ScrollPaneBuilder.create() .content(content2) .build(); scrollPane1.setPrefWidth(ScrollPane.USE_COMPUTED_SIZE); scrollPane2.setPrefWidth(300); VBox vBox = VBoxBuilder.create() .children(buttons, scrollPane1, scrollPane2) .fillWidth(false) .build(); Scene scene = SceneBuilder.create() .root(vBox) .build(); stage.setScene(scene); stage.show(); } }