JavaFX TitledPane фиксированный размер - PullRequest
1 голос
/ 04 июня 2019

У меня есть окно с двумя TitledPane в VBox.

TitledPane изменить его ширину в зависимости от размера окна, но я хочу, чтобы TitledPane имел фиксированный размер.

Основной класс:

public static void main(String[] ar){ launch(ar); }

@Override
public void start(Stage primaryStage){

    ControlPane controlPane = new ControlPane(); //extends TitledPane -> content = HBox -> Button + Pane + Button
    TitledPane logView = new LogViewPane(); //extends TitledPane -> content = HBox -> TextField + Button + Button

    VBox vbox = new VBox();
    vbox.setPadding(new Insets(10));

    VBox.setMargin(controlPane, new Insets(0, 0, 10, 0));

    vbox.getChildren().addAll(controlPane, logView);

    var classLoader = getClass().getClassLoader();

    Scene scene = new Scene(vbox);
    scene.getStylesheets().addAll(classLoader.getResource("control-status-style.css").toExternalForm(),
                                    classLoader.getResource("style.css").toExternalForm());

    primaryStage.setScene(scene);
    primaryStage.sizeToScene();

    primaryStage.show();

}

Класс ControlPane:

public class ControlPane extends TitledPane{

    private final Button start, close;
    private final Pane status;

    public ControlPane(){

        super("CONTROL", null);

        HBox hbox = new HBox();
        hbox.setAlignment(Pos.CENTER_LEFT);
        hbox.setPadding(new Insets(10));

        start = new Button("START");
        close = new Button("CLOSE");

        status = new Pane();
        status.setMinWidth(10);
        status.setMaxWidth(10);

        HBox.setMargin(start, new Insets(0, 10, 0, 0));
        HBox.setMargin(status, new Insets(0, 10, 0, 0));
        HBox.setMargin(close, new Insets(0));

        hbox.getChildren().addAll(start, status, close);

        this.setCollapsible(false);
        this.setContent(hbox);

    }

}

Класс LogViewPane:

public class LogViewPane extends TitledPane{

    public LogViewPane(){

        super("LOG", null);

        HBox hbox = new HBox();
        hbox.setAlignment(Pos.CENTER_LEFT);
        hbox.setPadding(new Insets(10));

        TextField inputDate = new TextField();
        inputDate.setMinWidth(100);
        inputDate.setMaxWidth(100);

        Button buttonLog = new Button("LOG");
        Button buttonChart = new Button("CHART");

        HBox.setMargin(inputDate, new Insets(0, 10, 0, 0));
        HBox.setMargin(buttonLog, new Insets(0, 10, 0, 0));
        HBox.setMargin(buttonChart, new Insets(0));

        hbox.getChildren().addAll(inputDate, buttonLog, buttonChart);

        this.setCollapsible(false);
        this.setContent(hbox);

    }

}

Это выглядит так:

image

Я хочу, чтобы это выглядело так:

image

Как можно предотвратить расширение / сжатие TitledPane без использования заданного (Мин. / Макс.) Размера?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...