代码之家  ›  专栏  ›  技术社区  ›  SDIDSA

所选内容仅适用于TextFlow中的第一个“文本”节点

  •  0
  • SDIDSA  · 技术社区  · 4 年前

    我做了一个 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);
    
    0 回复  |  直到 10 年前
        1
  •  7
  •   ItachiUchiha    10 年前

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

    这是一个悬而未决的问题: Text should have API for selecting group of characters based on their position similar to the DOM's Range .

    在问题得到解决之前,您的最佳选择是使用第三方控制,如 RichTextFX .

        2
  •  0
  •   Chengen Zhao    4 年前

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

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

    2. 我们可以设置鼠标按下和释放事件的信号。希望在Textflow节点上触发此事件

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

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

    推荐文章