JavaFX如何将包装的文本添加到GridPane

时间:2014-07-01 15:17:58

标签: java javafx-2 gridpane

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

TextArea

但是由于要求的改变,我必须在每个文本的前面添加一些图像作为子弹。然后我使用GridPane添加带有图像的文本,如下所示:

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)添加文本未正确包装。我该如何解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:0)

您需要将Text实例上的wrappingWidth设置为相对于GridPane的宽度。您可能希望通过HBox实例间接执行此操作:

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

我实际上没有尝试过这些更改,但是他们(或类似的东西)应该可以做到这一点。