java - 如何获取 JTextArea 中选定的字符位置?

标签 java user-interface swing character-encoding jtextarea

这是一个具有挑战性的问题!

首先让我告诉您我的情况,我如何实现问题的解决方案。

我正在读取日志文件并将其显示在 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/

相关文章:

user-interface - 从一组代码同时打开 2 个相同的窗口

java - 量产JTables

java - 关于如何将文本字段中的内容添加到 JList 中

java - 如何确定从我的 Java 应用程序访问某些第三方程序和资源的方式?

java - 创建图形查询语言(节点/边缘/超边缘)

java - 在Java中读取UTF-8文件时出错

android - float ListView 项

java - 为什么我从数据包中得到负目标地址

java - 在方法中返回类的实例

java - 如何用Java创建独立于平台的GUI?