When moving a SplitPane divider it may happen that the layout hang.
Example: Move the divider to the right (nothing will happen, but that's okay). Now select one value in the combobox. Nothing happens. Now move the divider a bit -> ComboBox will finally refresh the button cell.
Note: Other controls will have other problems:
- Another SplitPane -> you can't resize it
- TableView -> When scrolling with the scroll thumb nothing happens
- ...
--- SOURCE START ---
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.SplitPane;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class SplitPaneBug extends Application {
@Override
public void start(Stage stage) {
StackPane root = new StackPane();
// Does not need to be a ComboBox.
ComboBox<Object> objectComboBox = new ComboBox<>(FXCollections.observableArrayList("1", "2", "3"));
TabPane tabPane = new TabPane(new Tab("Tab", objectComboBox));
SplitPane pane = new SplitPane();
pane.getItems().addAll(new Text("AAAAA"), tabPane);
root.getChildren().add(pane);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
--- SOURCE END ---
Example: Move the divider to the right (nothing will happen, but that's okay). Now select one value in the combobox. Nothing happens. Now move the divider a bit -> ComboBox will finally refresh the button cell.
Note: Other controls will have other problems:
- Another SplitPane -> you can't resize it
- TableView -> When scrolling with the scroll thumb nothing happens
- ...
--- SOURCE START ---
import javafx.application.Application;
import javafx.collections.FXCollections;
import javafx.scene.Scene;
import javafx.scene.control.ComboBox;
import javafx.scene.control.SplitPane;
import javafx.scene.control.Tab;
import javafx.scene.control.TabPane;
import javafx.scene.layout.StackPane;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class SplitPaneBug extends Application {
@Override
public void start(Stage stage) {
StackPane root = new StackPane();
// Does not need to be a ComboBox.
ComboBox<Object> objectComboBox = new ComboBox<>(FXCollections.observableArrayList("1", "2", "3"));
TabPane tabPane = new TabPane(new Tab("Tab", objectComboBox));
SplitPane pane = new SplitPane();
pane.getItems().addAll(new Text("AAAAA"), tabPane);
root.getChildren().add(pane);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
--- SOURCE END ---