选择仅适用于 TextFlow 中的第一个 Text 节点

我目前有一个 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 节点之间进行选择,但它不起作用,请参阅下面的屏幕截图

选择仅适用于 TextFlow 中的第一个 Text 节点

docs 表示

当 Text 节点位于 TextFlow 内部时,其某些属性将被忽略

但我似乎没有找到在 Text 节点之间进行连续选择的正确方法,请注意,我无法将它们加入单个 Text 节点中,因为它们之间可能存在非文本节点,任何帮助将不胜感激。

linian000 回答:选择仅适用于 TextFlow 中的第一个 Text 节点

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/4338.html

大家都在问