我希望可以实时获取JtextArea中我鼠标选中的文本,我应该怎么写
时间: 2024-05-12 10:18:36 浏览: 8
您可以使用JTextComponent的getCaret()方法来获取当前光标位置,再结合getText()方法获取文本内容,然后将其与上一个光标位置进行比较,以此来获取新选中的文本。具体代码如下所示:
```
JTextArea textArea = new JTextArea();
textArea.addMouseListener(new MouseAdapter() {
int lastOffset = -1; //上一个光标位置
@Override
public void mouseReleased(MouseEvent e) { //释放鼠标事件
int offset = textArea.getCaretPosition(); //获取当前光标位置
if (offset != lastOffset) { //如果光标位置发生变化
int start = textArea.getSelectionStart(); //获取选中文本的起始位置
int end = textArea.getSelectionEnd(); //获取选中文本的结束位置
String selectedText = textArea.getText().substring(start, end); //获取选中的文本内容
System.out.println(selectedText); //打印选中的文本内容
lastOffset = offset; //更新上一个光标位置
}
}
});
```
当您在JTextArea中选中文本时,就可以在控制台输出选中的文本内容了。