首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使JavaFX节点(textarea,textfield)在用户拖动以调整舞台窗口大小时正确调整大小?

如何使JavaFX节点(textarea,textfield)在用户拖动以调整舞台窗口大小时正确调整大小?
EN

Stack Overflow用户
提问于 2013-11-30 19:53:14
回答 1查看 9.4K关注 0票数 6

如何使JavaFX节点(textarea,textfield)在用户拖动以调整舞台窗口大小时正确调整大小?

我有一段代码,它创建了一个带有两个节点(TextArea,TextField)的stage TextArea。但是,当用户拖动以调整窗口大小时,这些组件不会按比例拖动。请看图片:

这是我的代码,有关于如何实现修复的建议,这样textfield总是在底部,textarea展开来填充空白吗?谢谢!

代码语言:javascript
运行
复制
Stage stage = new Stage();  
VBox root = new VBox();
textArea = new TextArea();
textField = new TextField();
root.getChildren().addAll(textArea, textField);
textArea.setStyle("-fx-background-color: DARKGRAY;"
    + "-fx-text-fill: BLACK;"
    + "-fx-font-size: 14pt;");
textArea.setPrefSize(400, 316);
textArea.setEditable(false);
textArea.setWrapText(true);
textField.setStyle("-fx-background-color: DARKGRAY;"
    + "-fx-text-fill: BLACK;"
    + "-fx-font-size: 14pt;");
EN

回答 1

Stack Overflow用户

发布于 2013-12-01 04:55:46

使用VBox,组件将占用足够的空间(垂直的)来进行安装。在那之后,增加Stage的大小并没有什么区别。

使用BorderPane。如果您使用过Swing,这类似于BorderLayout。这将允许您将组件放置在Stage的边框上,并位于中心,这些组件在调整大小之后也将保持在原来的位置。

SSCCE:

代码语言:javascript
运行
复制
package stack;

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

public class TextfieldAdjust extends Application {

    Scene scene;
    TextArea area;
    TextField field;
    BorderPane border;

    @Override
    public void start(Stage stage) throws Exception {
        border = new BorderPane();
        scene = new Scene(border);

        area = new TextArea();
        field = new TextField();

        area.setStyle("-fx-background-color: DARKGRAY;"
                + "-fx-text-fill: BLACK;"
                + "-fx-font-size: 14pt;");
        field.setStyle("-fx-background-color: WHEAT;"
                + "-fx-text-fill: BLACK;"
                + "-fx-font-size: 14pt;");

        border.setCenter(area);
        border.setBottom(field);

        stage.setScene(scene);
        stage.sizeToScene();
        stage.show();
    }
    public static void main(String[] args) {
        Application.launch("stack.TextFieldAdjust");
    }
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20304933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档