import javafx.application.Application; import javafx.collections.FXCollections; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.CheckBox; import javafx.scene.control.ComboBox; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.BorderPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.layout.StackPane; import javafx.stage.Stage; import com.jyloo.syntheticafx.RootPane; import com.jyloo.syntheticafx.SyntheticaFX; import com.jyloo.syntheticafx.TitledBorderPane; public class TitledBorderPaneDemo extends Application { public Parent createContent() { Pane centerPane = new StackPane(); centerPane.setPrefSize(400, 300); StackPane child = new StackPane(new Label("Content")); TitledBorderPane p = new TitledBorderPane("Border Title", child); centerPane.getChildren().add(p); BorderPane content = new BorderPane(); content.setCenter(centerPane); content.setRight(createOptionPane(p)); return content; } public Pane createOptionPane(TitledBorderPane p) { GridPane grid = new GridPane(); grid.setVgap(10); grid.setHgap(10); grid.setPadding(new Insets(5)); int row = 0; grid.add(new Label("Title"), 0, row); TextField textField = new TextField(); textField.setText(p.getTitle()); p.titleProperty().bind(textField.textProperty()); grid.add(textField, 1, row); row++; grid.add(new Label("Position"), 0, row); ComboBox combo = new ComboBox<>(); combo.setItems(FXCollections.observableArrayList(Pos.values())); combo.setValue(p.titlePositionProperty().get()); combo.valueProperty().addListener((o, ov, nv) -> p.setTitlePosition(nv)); grid.add(combo, 1, row); row++; CheckBox cb = new CheckBox("Top Border Only"); cb.selectedProperty().addListener((o, ov, nv) -> { if (nv) p.getStyleClass().add("top-border-only"); else p.getStyleClass().remove("top-border-only"); }); grid.add(cb, 1, row); row++; Button button = new Button("Set Null Title"); button.setOnAction(e -> textField.setText(null)); grid.add(button, 1, row); return grid; } @Override public void start(Stage primaryStage) throws Exception { SyntheticaFX.init("com.jyloo.syntheticafx.SyntheticaFXModena"); //SyntheticaFX.init("com.jyloo.syntheticafx.SyntheticaFXStandard"); primaryStage.setScene(new Scene(new RootPane(primaryStage, createContent()))); primaryStage.setTitle(getClass().getSimpleName()); primaryStage.show(); } public static void main(String[] args) { launch(args); } }