如何使用JavaFX在标签中的imageview周围放置文本

时间:2019-03-23 07:22:41

标签: java javafx scenebuilder

我正在用JavaFX制作应用程序。我正在Scene Builder中制作GUI

我有一个带有标签的AnchorPane。 我将图像和文本放置在标签上。

文本位于图像后面,但是如果文本行太多,则文本不会位于图像下方。

这是我在Scene Builder中拥有的:

screen 1

screen 2

screen 3

如何实现?

screen 4

编辑:

我试图将标签的包裹属性绑定到图像,但是在Intelij Idea中出错:

idea error

lb_previewCard-是标签的fxid

previewImage-是ImageView的fxid

编辑2:

这是我在控制器中的代码:

@FXML  private AnchorPane previewCard;
@FXML  private Label lb_randomCard;
@FXML  private ImageView previewImage;

@FXML
  public void initialize(URL location, ResourceBundle resources) {

lb_previewCard.wrapTextProperty().bind(previewCard.prefWidthProperty());

}

我尝试将锚定窗格的不同宽度属性分配给标签的wrapTextPropery(),而Intelij Idea会出现如下错误:

Intelij Error

当我选择与标签包装有关的方法时,我只能拥有其中三个:

wrapping text methods

编辑3:

我试图创建一个String变量,并给标签分配文本,但是该变量不能使用bind()

这样的方法。

private String textFromPreviewCard = lb_previewCard.getText();

bind error

1 个答案:

答案 0 :(得分:0)

编辑:我注意到我留下的第一个答案没有用。对于给您带来的任何不便,我深表歉意。我有很好的意图。

从那时起,我一直在寻找答案,但不幸的是找不到。将文本换行属性绑定到它的父级只会使其文本宽度动态变化到它的容器,而不会环绕其他节点。不确定是否要删除此答案,我会告诉你我要怎么做。

如果您的应用程序需要处理文本的内容,这不是您想要的,但是我会在其他应用程序(例如Paint,Photoshop或Gimp)中使用文本换行来制作图像并将其保存为图片。我认为,即使MS Word也会允许您这样做。然后保存图像,并让您的应用程序将包含文本的图像显示为ImageView。

我希望这至少可以有所帮助。希望这里有人会提供更多实用的答案。