当前位置: 首页 > 知识库问答 >
问题:

JavaFX标签高度

古棋
2023-03-14

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

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

编辑:

多亏了@Fabian issues,这才解决了最初的问题。在addiction中,需要将每个元素的fx:id设置到场景构建器中。

@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<RowConstraints>  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<String>() {
        @Override
        public void changed(ObservableValue<? extends String> 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);
}    

共有1个答案

冀弘厚
2023-03-14

不幸的是,label元素不会根据显示的文本调整大小。我建议使用text形状。您可以在场景生成器中使用包装宽度指定最大宽度。

 类似资料:
  • 主要内容:创建标签,标签内容,标签字体,包装文本,应用效果,标签鼠标事件,更新标签JavaFX API的包中的类可用于显示一个文本元素。 我们可以包装文本元素以适应特定空间,添加图形图像或使用JavaFX 控件应用视觉效果。 以下代码显示如何使用显示文本。 创建标签 JavaFX API提供了类的三个构造函数来创建标签。 标签内容 创建标签后,我们可以使用类中的以下方法添加文本和图形内容。 - 设置标签的文本标题 - 设置图形图标 方法设置文本和图标之间的间距。方法设置标签文本

  • 显然,有两个方法和 是这样的: 我看了这篇文章,但它推荐了一种已弃用的方法: 如何在爪哇fx中获取标签

  • 我在vBox中有5个标签。我想创建一个方法来跟踪我单击的标签。现在,我使用5种方法,每个标签一种。我需要找个倾听者或其他什么吗?这是我的程序片段。 我的fxml代码: 我的java方法:

  • 我正在尝试创建一个自定义标签类型,该类型将包含一个“淡出”函数。这用于显示将闪烁然后隐藏的消息。 我正在使用Eclipse、SceneBuilder和Javafx。我不知道该怎么做,也不知道是否可能,但到目前为止,我已经做到了: 这显然行不通。 这是我第一次在一个文件中处理凌乱的代码(因此,我尝试将代码从版本1拉入一个新的“对象”,我可以在多个类中使用它): 如果您有任何建议或帮助,我们将不胜感激

  • 我正在尝试为用Java编写的应用程序制作GUI。 我用Scene Builder制作了fxml文档,正确设置了fx: id,现在我正在尝试对表单进行简单的更改。 我的DocumentController: 我的外汇主文件: 我现在想要的一切,都是将LabelData设置为实际时间戳,但当我运行FX主文件时,什么都不会发生。有人能帮我吗? 谢谢你保罗 更新时间: 我的整个FXML文档: 我想要的一切

  • 我在fxml文件中有一个JavaFX GUI,定义了它的控制器类。我在该GUI中有两个我想要的文本项,一个与一个变量绑定,其值在用户重新加载屏幕之前不会更改,另一个我认为需要是StringProperty,因为它显示了我的TableView中一列的运行总数。由于它们是什么,我正在尝试使用Label而不是TextField作为它们的显示控件。 我喜欢塞巴斯蒂安对这个问题的回答: 在JavaFx标签中