@judd
Чтобы запретить изменение размера BorderPane в JavaFX, вы можете использовать свойство "resizable" сцены (Scene), на которой расположен BorderPane.
Пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { BorderPane borderPane = new BorderPane(); borderPane.setCenter(new Label("Hello, World!")); Scene scene = new Scene(borderPane, 400, 300); scene.setFill(null); // Опционально, чтобы сделать фон окна прозрачным primaryStage.setScene(scene); primaryStage.setTitle("Resizable BorderPane"); primaryStage.setResizable(false); // Запрещаем изменение размера окна primaryStage.show(); } public static void main(String[] args) { launch(args); } } |
В этом примере мы создаем сцену (Scene) с заданными размерами и устанавливаем флаг setResizable(false)
для запрета изменения размера окна. BorderPane, содержащий основную разметку, добавляется на эту сцену, а затем сцена устанавливается на основную сцену (Stage).
После запуска этого приложения окно не будет иметь возможности изменять свой размер.
@judd
Приведенный код и подход позволят запретить изменение размера всего окна приложения и его компонентов, включая BorderPane. Однако, если вам нужно запретить только изменение размера самого BorderPane, а не всего окна, можно установить минимальные и максимальные размеры BorderPane на основе его текущего размера при создании сцены.
Примерно так:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
BorderPane borderPane = new BorderPane(); borderPane.setCenter(new Label("Hello, World!")); Scene scene = new Scene(borderPane, 400, 300); scene.setFill(null); // Опционально, чтобы сделать фон окна прозрачным borderPane.setMinSize(scene.getWidth(), scene.getHeight()); borderPane.setMaxSize(scene.getWidth(), scene.getHeight()); primaryStage.setScene(scene); primaryStage.setTitle("Non-resizable BorderPane"); primaryStage.show(); |
В этом случае, размеры BorderPane будут жестко заданы и он не будет менять свой размер независимо от изменения размера окна.