Как запретить изменять размер borderpane в javafx?

Пользователь

от jeromy_ruecker , в категории: Java , год назад

Как запретить изменять размер borderpane в javafx?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brenna , год назад

@jeromy_ruecker 

Чтобы запретить изменение размера BorderPane в JavaFX, вы можете использовать метод setResizable(false) для вашего Stage или окна приложения.


Вот пример кода, который демонстрирует это:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        Scene scene = new Scene(root, 400, 300);

        // Запретить изменение размера окна
        primaryStage.setResizable(false);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

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


После запуска приложения окно не будет иметь возможность изменять размер, оно будет иметь фиксированный размер, заданный в Scene(scene, 400, 300).

Пользователь

от hoyt.jerde , 9 месяцев назад

@jeromy_ruecker 

Если речь идет о запрете изменения размера BorderPane внутри сцены, и необходимо, чтобы BorderPane сохранял свой размер без возможности изменения пользователем, то можно использовать управление свойствами макета у BorderPane. Вот пример кода, который позволит сделать BorderPane неподвижным:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane root = new BorderPane();
        root.setMinSize(400, 300);
        root.setMaxSize(400, 300); // фиксированный размер 400x300
        
        Scene scene = new Scene(root);

        primaryStage.setScene(scene);
        primaryStage.show();
    }

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


В этом примере BorderPane установлен фиксированный минимальный и максимальный размер 400x300. При запуске приложения пользователь не сможет изменить размер BorderPane внутри окна, поскольку у него задан фиксированный размер.