Как я могу сделать так, чтобы TextArea заполнял центр экрана? - PullRequest
0 голосов
/ 30 мая 2018

Я использую JavaFx, и я хочу создать TextArea, чтобы заполнить центр экрана.Я пытаюсь создать BorderPane, но независимо от того, где на панели я ее установил (сверху, снизу, по центру и т. Д.), Она всегда находится в верхней части экрана.Я также не могу заставить его изменить размер кол.

    primaryStage.setTitle("Cauldron");
    VBox root = new VBox();
    Scene scene = new Scene(root, 1280, 720);
    BorderPane borderPane = new BorderPane();

    MenuBar menuBar  = new MenuBar();
    Menu    menuFile = new Menu("File");
    Menu    menuEdit = new Menu("Edit");
    Menu    menuView = new Menu("View");
    Menu    menuHelp = new Menu("Help");

    menuBar.getMenus().addAll(menuFile,menuEdit,menuView,menuHelp);
    borderPane.setTop(menuBar);

    TextArea textArea = new TextArea();
    borderPane.setCenter(textArea);

    root.getChildren().add(borderPane);
    primaryStage.setScene(scene);
    primaryStage.show();

Это мой код, , и это то, что он создает.

1 Ответ

0 голосов
/ 30 мая 2018

Текстовая область заполняет центр панели границ.Проблема заключается в том, что область границ не выходит за пределы своего расчетного предпочтительного размера в VBox.

. На самом деле VBox, похоже, не выполняет никакой полезной цели: вы можете просто создать панель границкорень сцены:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuBar;
import javafx.scene.control.TextArea;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;

public class LayoutTest extends Application {

    @Override
    public void start(Stage primaryStage) {
        BorderPane borderPane = new BorderPane();
        Scene scene = new Scene(borderPane, 1280, 720);

        MenuBar menuBar  = new MenuBar();
        Menu    menuFile = new Menu("File");
        Menu    menuEdit = new Menu("Edit");
        Menu    menuView = new Menu("View");
        Menu    menuHelp = new Menu("Help");

        menuBar.getMenus().addAll(menuFile,menuEdit,menuView,menuHelp);
        borderPane.setTop(menuBar);

        TextArea textArea = new TextArea();
        borderPane.setCenter(textArea);

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

    }

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

Если вам действительно нужен VBox, вы можете указать ему всегда выделять дополнительное пространство для BorderPane с помощью

VBox.setVgrow(borderPane, Priority.ALWAYS);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...