我正在try 使用一个非常简单的JavaFX特性,但可能遗漏了一些东西:在已经显示的TextFlow
的基础上添加一个新的Text
对象.我创建了一个非常简单的工作示例:
public class TextFlowTest extends Application {
@Override
public void start(Stage stage) {
TextFlow textFlow = new TextFlow(new Text("One "), new Text("Two "), new Text("Three "), new Text("Four "));
var layout = new BorderPane(textFlow);
layout.setOnMouseClicked(e -> {
textFlow.getChildren().addAll(new Text("myAdd "));
});
Scene scene = new Scene(layout, 200, 50);
stage.setScene(scene);
stage.show();
}
public static void main(String args[]){
launch(args);
}
}
如果运行上面的代码并单击文本,它应该会添加一个新词:myAdd
--但是它只呈现第一个字符的前几个像素.
我的感觉是,这与最初计算的流的宽度有关,所以我在TextFlow
或包含面板上try 了requestLayout
,但没有帮助.这难道不应该开箱即用吗?只需向流的子 node 添加一个新的Text
node ,这是一个可观察的列表,那么流应该更新其布局吗?