我需要允许用户突出显示文本(使用鼠标选择一个范围),然后我想让他们能够将一些设置应用于该文本形式下拉右键菜单。
我知道后一部分。但是如何从JavafX中的文本区域中选择哪个文本字符串?
另外,我可以将不同的样式应用于不同的字符串吗?
答案 0 :(得分: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);
}
}
启动此应用程序后,它会显示TextArea
一些文字(Text Sample
)。我选择了部分文本并进行了右键单击。它打印了所选文本。这符合您的要求吗?