当我将一些文本动态附加到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)添加文本未正确包装。我该如何解决这个问题。谢谢。
答案 0 :(得分:0)
您需要将Text实例上的wrappingWidth设置为相对于GridPane的宽度。您可能希望通过HBox实例间接执行此操作:
btnHub.prefWidthProperty().bind(gridPane.widthProperty();
text.wrappingWidthProperty().bind(btnHub.widthProperty().subtract(passed.widthProperty().subtract(10));
我实际上没有尝试过这些更改,但是他们(或类似的东西)应该可以做到这一点。