微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决选择仅适用于 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 节点之间进行选择,但它不起作用,请参阅下面的屏幕截图

screenshot

docs 表示

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。