package bugs.toolbar.fixed.RT22566; import javafx.application.Application; 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.control.Button; import javafx.scene.control.Slider; import javafx.scene.control.ToolBar; import javafx.scene.control.Tooltip; import javafx.scene.layout.BorderPane; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class ClientWithButtons extends Application { public static void main(String[] args) { launch(args); } private BorderPane pane = new BorderPane(); @Override public void start(Stage stage) { stage.setWidth(800); stage.setHeight(600); Scene scene = createScene(); stage.setScene(scene); stage.show(); } public Scene createScene() { createToolbar(); createSlider(); createTable(); return new Scene(pane); } private void createToolbar() { ToolBar toolbar = new ToolBar(); Button button = new Button("Move the slider around to freeze me."); button.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent actionEvent) { System.out.println("I am still active - I just don't look the way."); } }); button.setTooltip(new Tooltip("My tooltip is still fine!")); toolbar.getItems().add(button); pane.setTop(toolbar); } public void createSlider() { Slider slider = new Slider(); slider.valueProperty().addListener(new ChangeListener<Object>() { @Override public void changed(ObservableValue observableValue, Object o, Object o1) { createTable(); } }); pane.setCenter(slider); } public void createTable() { HBox hBox = new HBox(); for (int i = 0; i < 50; i++) { hBox.getChildren().add(new Button()); } pane.setBottom(hBox); } }