簡體   English   中英

如何使文本流可選擇

[英]How to make textflow selectable

我制作了一個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);

JavaFX中的Text和TextFlow不是“可選擇的”。

有一個問題是開放的: 文本應該有API,用於根據類似於DOM的Range的位置選擇字符組

在問題得到解決之前,您最好的選擇是使用像RichTextFX這樣的第三方控件。

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

  1. 文本可以感知鼠標進入和退出移動事件

  2. 我們可以為鼠標按下和釋放事件設置一個信號。 最好在 Textflow 節點上觸發此事件

  3. 擴展文本 class 使鼠標進入事件處理程序,當全局信號打開並且鼠標輸入文本時,然后將文本復制到某些地方,並使用 sth 在文本流中記錄文本位置。 like var index = textflow.getChildren().indexof(text) 記錄索引和文本對

  4. 當觸發鼠標釋放或退出事件時,對選中的文本進行排序,並生成相應的文本到剪貼板

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM