这是一个具有挑战性的问题!
首先让我告诉您我的情况,我如何实现问题的解决方案。
我正在读取日志文件并将其显示在 JTextArea 上。日志文件采用 cp037 字符编码。我从日志文件中将每个文件作为字节流或字节数组读取并显示它。无论如何,我设法通过 cp037 字符编码在 JTextArea 中正确显示文本。
现在,用户可以在 JTextArea 中选择一组字符。我想要的只是用户所选文本的第一个字符的位置,距最近的特殊字符“+”(其在 cp037 中的字符代码为 4E),该字符位于所选文本之前。该字符可能出现在 JTextArea 中的多个位置。
在简单的句子中,我想要来自最近的“+”的第一个字符位置(用户选择的文本),它应该出现在用户选择的文本之前。
PS:cp037 是一种字符编码方案,由 IBM 创建并用于 IBM 大型机。
如果问题不清楚,请随时问我...:->
最佳答案
JTextComponent有一个方法
public int getSelectionStart()
返回所选文本的起始位置。如果是空文档,则返回 0;如果没有选择,则返回点的值。
public String getSelectedText()
返回此 TextComponent 中包含的选定文本。如果选择为 null 或文档为空,则返回 null。
关于java - 如何获取 JTextArea 中选定的字符位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2929435/