5

我做了一个TextFlow, 因为我需要使用多种字体姿势(我已将特定的“文本”设置为斜体或正常)。一旦我显示TextFlow,它就不可选择/不可复制。我只需要 TextFlow 在场景中显示后就可以选择,因此它可以复制/粘贴。

带有字体姿势的文本示例(仅一个示例):

Text volumeText = new Text(volume.getText());
volumeText.setFill(Color.WHITE); 
volumeText.setFont(Font.font("arial", FontPosture.ITALIC, 13));
TextFlow reference = new TextFlow(
                         lastNameText, miscelanous1, firstNameText, miscelanous2);
reference.setLayoutX(115);
reference.setLayoutY(480);
reference.setMaxWidth(500);
control.getChildren().add(reference);
4

2 回答 2

7

JavaFX 中的 Text 和 TextFlow 不是“可选择的”。

对此存在一个问题:文本应该有 API 用于根据与 DOM 的 Range 相似的位置来选择字符组

在问题得到解决之前,您最好的选择是使用RichTextFX之类的第 3 方控件。

于 2015-10-22T08:54:20.007 回答
0

我觉得我做类似工作的方式很糟糕

  1. 文本可以感知鼠标进入和退出移动事件

  2. 我们可以为鼠标按下和释放事件设置一个信号。很高兴在 Textflow 节点上触发此事件

  3. 扩展 Text 类以使鼠标进入事件处理程序,当全局信号打开并且鼠标输入文本时,然后将文本复制到某些位置,并使用 sth 记录文本流中的文本位置。like var index = textflow.getChildren().indexof(text) 记录索引和文本的对

  4. 当鼠标释放或退出事件被触发时,对选中的文本进行排序并生成相应的文本到剪贴板

于 2022-02-28T17:28:30.527 回答