如何使文本流可选择
How to make textflow selectable
我做了一个 TextFlow
,因为我需要使用多种字体(我已经将特定的 "Text" 设置为斜体或正常)。一旦我显示 TextFlow
,它就不是 selectable/copyable。我所需要的只是 TextFlow 在场景中显示后可选择,因此它可以是 copy/paste-able.
带有字体姿势的文本示例(为了示例仅举一个):
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);
JavaFX 中的文本和 TextFlow 不是 "selectable"。
在问题得到解决之前,您最好的选择是使用像 RichTextFX 这样的第 3 方控件。
我认为我做类似工作的方式很糟糕
文本可以感知鼠标进入和退出移动事件
我们可以为鼠标按下和释放事件设置一个信号。在 Textflow 节点
上触发此事件会很好
extends Text class 使鼠标进入事件处理程序,当全局信号打开且鼠标输入文本时,将文本复制到某些地方
并记录文本流中的文本位置
使用……像
var index = textflow.getChildren().indexof(文本)
记录一对索引和文本
当触发鼠标释放或退出事件时,对选中的文本进行排序,并生成对应的文本到剪贴板
我做了一个 TextFlow
,因为我需要使用多种字体(我已经将特定的 "Text" 设置为斜体或正常)。一旦我显示 TextFlow
,它就不是 selectable/copyable。我所需要的只是 TextFlow 在场景中显示后可选择,因此它可以是 copy/paste-able.
带有字体姿势的文本示例(为了示例仅举一个):
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);
JavaFX 中的文本和 TextFlow 不是 "selectable"。
在问题得到解决之前,您最好的选择是使用像 RichTextFX 这样的第 3 方控件。
我认为我做类似工作的方式很糟糕
文本可以感知鼠标进入和退出移动事件
我们可以为鼠标按下和释放事件设置一个信号。在 Textflow 节点
上触发此事件会很好extends Text class 使鼠标进入事件处理程序,当全局信号打开且鼠标输入文本时,将文本复制到某些地方 并记录文本流中的文本位置 使用……像 var index = textflow.getChildren().indexof(文本) 记录一对索引和文本
当触发鼠标释放或退出事件时,对选中的文本进行排序,并生成对应的文本到剪贴板