java - 如何从 JEditorPane 获取光标当前所在行的行文本?

标签 java jeditorpane

我有一个 JEditorPane,我在上面放置了一个鼠标监听器,并且可以检测光标所在的位置。

但是,我希望能够获取光标所在行的文本。有我可以使用的实用方法吗?如果没有,那么我将如何构造一个方法来执行此操作?

        xmlEditor.addMouseListener(
            new MouseAdapter() {
                public void mouseClicked(MouseEvent me) {  
                    try {
                        int caretPosition = xmlEditor.getCaretPosition();
                        int offset = 0;
                        int length = 0;
                        xmlEditor.getText(offset, length);
                    } catch (BadLocationException ex) {
                        Logger.getLogger(EZXPathFrame.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        );

最佳答案

Is there a utility method I can use?

从未尝试过使用 JEditorPane,但您也许可以使用 Utilities 类。您应该能够使用 getRowStart(...)getRowEnd(...) 等方法。一旦知道开始和结束偏移量,您就可以从 JEditorPane 获取文本。

类似于:

int start = Utilities.getRowStart(textComponent, offset);
int end = Utilities.getRowEnd(textComponent, offset);
String text = textComponent.getText(start, end-start);

关于java - 如何从 JEditorPane 获取光标当前所在行的行文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34541213/

相关文章:

java - 登录配置: pattern for LoggingEventPatternJsonProvider

java - GWT 使用 OSM 导致异常

java.sql.SQLException : ORA-01403: no data found with OJDBC6

java - 尝试将 rtf 文件从 Jar 读取到 JEditorPane;在 Netbeans 中工作,而不是在 Jar 中工作

java - Swing - 确保文本组件中的可见行

java - 将pdf文件添加到swing java中的jeditorpane中

java - 如何在 spring-security 中的另一个过滤器之前添加过滤器?

JavaMail BASE64_LENGTH_79_INF 垃圾邮件

java - 如何通过鼠标单击包含 HTML 表格的 JEditorPane 来获取行

Java:将 HTML 或 PDF 嵌入到 JFrame 中