package separatorissue; import javafx.application.Application; import javafx.beans.property.DoubleProperty; import javafx.beans.property.SimpleDoubleProperty; import javafx.collections.FXCollections; import javafx.event.EventHandler; import javafx.geometry.HPos; import javafx.geometry.Orientation; import javafx.geometry.VPos; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Separator; import javafx.scene.input.KeyCode; import javafx.scene.input.KeyEvent; import javafx.scene.input.MouseButton; import javafx.scene.input.MouseEvent; import javafx.scene.layout.VBox; import javafx.scene.paint.Color; import javafx.scene.shape.Rectangle; import javafx.scene.text.Font; import javafx.scene.text.Text; import javafx.stage.Stage; public class SeparatorIssue extends Application { DoubleProperty sw = new SimpleDoubleProperty(50.0); DoubleProperty sh = new SimpleDoubleProperty(10.0); Scene scene; Rectangle r; public static void main(String[] args) { launch(args); } @Override public void start(Stage stage) throws Exception { final VBox vb = new VBox(); final Text textBefore = new Text(10, 10, "Text Before \n Seperator"); final Text textAfter = new Text(10, 10, "Text After \n Separator"); final Separator sp = new Separator(Orientation.HORIZONTAL); r = new Rectangle(0, 0, 300, 300); r.setFill(Color.WHITE); r.setOnMouseClicked(new EventHandler() { public void handle(MouseEvent e) { System.out.println("Mouse Event " + e.getButton() + " e.getButton().equals(MouseButton.PRIMARY) is " + e.getButton().equals(MouseButton.PRIMARY)); if (e.getButton().equals(MouseButton.PRIMARY)) { System.out.println("sp.getValignment() " + sp.getValignment()); if (sp.getValignment().equals(VPos.CENTER)) { sp.setValignment(VPos.BOTTOM); } else if (sp.getValignment().equals(VPos.BOTTOM)) { sp.setValignment(VPos.TOP); } else { sp.setValignment(VPos.CENTER); } } } }); r.setOnKeyPressed(new EventHandler() { public void handle(KeyEvent ke) { if (ke.getCode().equals(KeyCode.LEFT)) { System.out.println("a"); if (sw.get() < 120) { sw.set(sw.get() + 20); sh.set(sh.get() + 10); } else { sw.set(50); sh.set(10); } } } }); sp.setPrefWidth(80); sp.setPrefHeight(80); sp.setHalignment(HPos.CENTER); sp.setValignment(VPos.CENTER); sp.prefWidthProperty().bind(sw); sp.prefHeightProperty().bind(sh); textBefore.setFont(new Font(10)); textAfter.setFont(new Font(10)); vb.getChildren().clear(); vb.getChildren().addAll(FXCollections.observableArrayList(textBefore, sp, textAfter)); scene = new Scene(new Group(), 300, 300); ((Group) scene.getRoot()).getChildren().clear(); ((Group) scene.getRoot()).getChildren().addAll(FXCollections.observableArrayList(r, vb)); stage.setScene(scene); stage.show(); r.requestFocus(); } }