如何知道用户在JavaFX TextArea中选择了哪个文本字符串

mel*_*ldi 4 textarea javafx highlighting selection textselection

我需要允许用户突出显示文本(用鼠标选择一个范围),然后我想让他们能够将一些设置应用于该文本形式的下拉右键菜单.

我知道后一部分.但是如何从JavafX中的文本区域中选择哪个文本字符串?

另外,我可以将不同的样式应用于不同的字符串吗?

Asp*_*ant 5

使用getSelectedText()得到选定的文本.

你的第二个问题的答案是肯定的.

这个getSelectedText()方法可以像我在这里一样使用:

import javafx.application.Application;
import javafx.event.Event;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.scene.layout.VBox;
import javafx.stage.Stage;

public class TextAreaDemo extends Application
{
    @Override
    public void start(Stage stage)
    {
        final TextArea textArea = new TextArea("Text Sample");
        textArea.setPrefSize(200, 40);

        textArea.setOnContextMenuRequested(new EventHandler<Event>()
        {
            @Override
            public void handle(Event arg0)
            {
                System.out.println("selected text:"
                    + textArea.getSelectedText());
            }
        });

        VBox vBox = new VBox();
        vBox.getChildren().addAll(textArea);

        stage.setScene(new Scene(vBox, 300, 250));
        stage.show();
    }

    public static void main(String[] args)
    {
        launch(args);
    }
}
Run Code Online (Sandbox Code Playgroud)

启动此应用程序后,它会显示TextArea带有一些文本(Text Sample).我选择了部分文本并进行了右键单击.它打印了所选文本.这符合您的要求吗?