2010-05-28 75 views
2

这是一个具有挑战性的问题!如何获取JTextArea中的选定字符位置?

让我先告诉你我的情景如何实施问题的解决方案。

我正在读取日志文件并在JTextArea上显示它。日志文件是cp037字符编码。我正在从显示它的日志文件&中读取每个文件作为字节流或字节数组。无论如何,我设法通过cp037字符编码在JTextArea中正确显示文本。

现在,用户可以在JTextArea中选择一组字符。我想要的只是用户所选文本的第一个字符的位置,它来自最近的特殊字符'+'(cp037中的字符代码是4E),它位于所选文本之前。这个字符可能出现在JTextArea的几个地方。

在简单的句子中,我想从用户选择的文本之前应该出现的nearset'+'的第一个字符位置(用户选择的文本的位置)。

PS:cp037是一种字符编码方案,由IBM &用于IBM大型机创建。

请下跌免费问我,如果这个问题不明确... - >

回答

3

JTextComponent有一个方法

public int getSelectionStart() 

返回选定文本的起始位置。对于空白文档返回0,如果没有选择,则返回点的值。

public String getSelectedText() 

返回包含在此TextComponent中的选定文本。如果选择为空或文档为空,则返回null。

2

两种方法getSelectionEnd()JTextComponentgetSelectionStart()会帮助你。

String firstSelectedChar; 
String text = textArea.getText(); 
int selectionStart = textArea.getSelectionStart(); 
firstSelectedChar = text.substring(selectionStart, selectionStart + 1); 

这可能与您需要的类似。

相关问题