JavaFX标签高度

 原来那只是梦靥 发布于 2023-02-05 12:08

我正在使用JavaFX和JavaFX Scene Builder开发软件.

我有一个有2列的网格窗格.实际上在每个单元格中都有标签.在表的第一列中,标签内的文本是默认常量,在第二列中文本可以更改.

问题是如果文本变量太长,它会自动截断.

如何开始修剪文本的新行并重新调整网格窗格中行的高度?

编辑:

感谢@fabian问题,这是初始问题的解决方案.在成瘾中有必要将每个元素的fx:id设置为Scene Builder.

@FXML private GridPane gridPane;
@FXML private Text text1;
@FXML private Text text2;
@FXML private Text text3;


private void setGridRowHeight(GridPane gpName, int numRow, double height){
    ObservableList  rows = gpName.getRowConstraints();
    rows.get(numRow).setMinHeight(32);
    rows.get(numRow).setPrefHeight(height);
    rows.get(numRow).setMaxHeight(height);
}


private void addTextListener(final GridPane gridPane, final Text text){

    text.textProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observable, String oldValue, String newValue) {
            scrollPane.setFitToHeight(true);
            text.setWrappingWidth( gridPane.getColumnConstraints().get(1).getPrefWidth() );
            setGridRowHeight(gridPane, gridPane.getRowIndex(text), text.getLayoutBounds().getHeight() );
        }
    });
}


@FXML public void initialize() {
    addTextListener(gridPane, text1);
    addTextListener(gridPane, text2);
    addTextListener(gridPane, text3);
}    

fabian.. 6

不幸的是,Label元素不会根据显示的文本调整大小.我建议使用TextShape.您可以在场景构建器中使用包装宽度指定最大宽度.

1 个回答
  • 不幸的是,Label元素不会根据显示的文本调整大小.我建议使用TextShape.您可以在场景构建器中使用包装宽度指定最大宽度.

    2023-02-05 12:11 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有