JavaFX将文本流转换为字符串
我正在尝试将Java中的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
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();
}