移动到TextFlow JavaFX中的特定位置

时间:2014-09-16 09:40:29

标签: java javafx javafx-8 textflow

TextFlow内的StackPane位于ScrollPane内。我正在为此TextFlow

添加不同颜色的文字
Text txt = new Text(msg);
txt.setFill(Paint.valueOf(color));
txtFlow.getChildren().add(txt);

我想滚动到文本流中的某个特定点。

e.g。第一个蓝色的文字。

我知道我可以得到文字并检查颜色。但是,我怎样才能向下滚动到那个特定位置?

我可以通过TextFlow实现这种功能吗? 我只是想在JavaFX中建立差异视图。并希望穿越差异。

2 个答案:

答案 0 :(得分:1)

我会使用ListView并将一些堆栈窗口或文本直接放入其中。

Text content = new Text("Custom Text");
content.setFill(Color.valueOf(yourcolor));   
ListView<Text> list = new ListView<Text>();
list.add(content);

由于... 这里有一个空scrollTo(),你可以直接通过Text对象滚动到项目,也可以通过索引(int)滚动到项目。

要在列表视图中获得透明背景,您可以使用:

list.setStyle("-fx-background-color: transparent;");

我希望这有助于你。 如果我不理解你的问题,我很抱歉。

和平

答案 1 :(得分:1)

使用其中一个免费样式的文本编辑器 - 它们都在内部使用ListView或VirtualView。有关示例,请参阅https://github.com/TomasMikula/RichTextFX/wiki/JavaFX-Controls-for-Code-Editing