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.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.ToolBar;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import java.util.ArrayList;
import java.util.List;
public class Client 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() {
TableView<Object> tableView = new TableView<>();
List<TableColumn<Object, ?>> columns = new ArrayList<>();
for (int i = 0; i < 30; i++) {
TableColumn<Object, Number> column = new TableColumn<>();
columns.add(column);
}
tableView.getColumns().setAll(columns);
pane.setBottom(tableView);
}
}