问题描述
我目前有一个 TextFlow,将文本节点和其他类型的节点放入其中,我正在尝试使用鼠标和键事件使文本可选择,但方法 setSelectionStart 和 setSelectionEnd 似乎没有按照他们应该的方式行事,就像它适用于第一个 Text 节点但不适用于其他
这是一个最小的可重现示例:
@Override
public void start(Stage ps) {
TextFlow flow = new TextFlow();
flow.setPadding(new Insets(10));
Text t1 = new TextNode("first ");
Text t2 = new TextNode("second ");
Text t3 = new TextNode("third");
t1.setSelectionStart(2);
t1.setSelectionEnd(6);
t2.setSelectionStart(0);
t2.setSelectionEnd(4);
flow.getChildren().addAll(t1,t2,t3);
ps.setScene(new Scene(flow,400,300));
ps.show();
}
private class TextNode extends Text {
public TextNode(String s) {
super(s);
setFont(Font.font(18));
setSelectionFill(Color.RED);
}
}
我基本上是在创建一个 TextFlow 并在其中插入 3 个 Text 节点,我希望能够在第一个和第二个 Text 节点之间进行选择,但它不起作用,请参阅下面的屏幕截图
docs 表示
当 Text 节点位于 TextFlow 内部时,其某些属性将被忽略
但我似乎没有找到在 Text 节点之间进行连续选择的正确方法,请注意,我无法将它们加入单个 Text 节点中,因为它们之间可能存在非文本节点,任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)