0

当我将一些文本动态附加到 TextArea 时,它被正确包装如下:

文本区域

但是由于要求更改,我必须为每个文本(在前面)添加一些图像作为项目符号。然后我使用 GridPane 将这些文本与图像添加如下:

网格窗格

用于向 GridPane 添加组件的代码:

 // Set the GridPane empty 
 gridPane.getChildren().removeAll();

 // Add image with each text
 int index = 0;
 for(String des : descriptionsList) {

     HBox btnHb = new HBox();

     ImageView passed = new ImageView();
     passed.setImage(new Image(getClass().getResourceAsStream(GuiConstant.Image.IMAGE_PASSED)));
     btnHb.getChildren().add(passed);

     Text text = new Text(des);
     btnHb.getChildren().add(text);

     gridPane.addRow(index, btnHb);
     index++;
}

现在(使用 GridPane)添加的文本没有正确包装。我该如何解决这个问题。谢谢。

4

1 回答 1

0

您需要将 Text 实例上的 wrappingWidth 设置为相对于 GridPane 的宽度。您可能希望通过 HBox 实例间接地做到这一点:

btnHub.prefWidthProperty().bind(gridPane.widthProperty(); text.wrappingWidthProperty().bind(btnHub.widthProperty().subtract(passed.widthProperty().subtract(10));

我实际上并没有尝试这些更改,但是它们(或非常相似的东西)应该可以解决问题。

于 2014-07-03T14:09:28.637 回答