2017-04-23 28 views
1

我試圖在Java中將TextFlow轉換爲StringJavaFX將TextFlow轉換爲字符串

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()不起作用。

回答

1

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(); 
0

該實用程序的方法可能會奏效。

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(); 
}