JavaFX将文本流转换为字符串

JavaFX将文本流转换为字符串,java,javafx,Java,Javafx,我正在尝试将Java中的TextFlow转换为String TextFlow flow = new TextFlow(); Text t1 = new Text(visibility.get(attribute.getVisibility())); Text t2 = new Text(attribute.getName()); t2.setUnderline(true); Text t3 = new Text(" : " + attribute.getType()); flow.getChil

我正在尝试将Java中的
TextFlow
转换为
String

TextFlow flow = new TextFlow();
Text t1 = new Text(visibility.get(attribute.getVisibility()));
Text t2 = new Text(attribute.getName());
t2.setUnderline(true);
Text t3 = new Text(" : " + attribute.getType());
flow.getChildren().addAll(t1, t2, t3);

这就是我制作
TextFlow
的方法,我正在尝试将它转换为一个字符串,其中所有三个
Text
项彼此相邻。我该怎么做
toString()
不工作。

TextFlow
s不支持此操作。您需要通过连接类型为
text
的子级的所有
text
属性来实现这一点:

StringBuilder sb = new StringBuilder();
for (Node node : flow.getChildren()) {
    if (node instanceof Text) {
        sb.append(((Text) node).getText());
    }
}
String fullText = sb.toString();

此实用方法可能会起作用

public static String getStringFromTextFlow(TextFlow tf) {
    StringBuilder sb = new StringBuilder();
    tf.getChildren().stream()
            .filter(t -> Text.class.equals(t.getClass()))
            .forEach(t -> sb.append(((Text) t).getText()));
    return sb.toString();
}