java - 实现 DocumentFilter 时 Enter 键不起作用

标签 java swing jtextpane documentfilter

我通过继承原始的 DocumentFilter 类并重写它的 insertreplace 方法来实现文档过滤器。它响应除 Enter 键之外的所有键。我的意思是,当我按 Enter 时,它应该转到我的 JTextPane 中的下一行,但它没有这样做。那么如何才能让我的 Enter 键正常工作呢?

代码

class UrduFilter extends DocumentFilter {
//My urdu filter overriding insertString and replace
    char urduChar;
    String urduString;

    public void insertString(DocumentFilter.FilterByPass fb, int offset,
            String text, AttributeSet attr) throws BadLocationException {
        System.out.println("\n" + text);
        urduChar = Translate.translateToUrdu(text.charAt(0));
        urduString = Character.toString(urduChar);
        fb.insertString(offset, urduString, attr);
    }

    //no need to override remove(): inherited version allows all removals

    public void replace(DocumentFilter.FilterByPass fb, int offset, int length, 
            String text, AttributeSet attr) throws BadLocationException {
        urduChar = Translate.translateToUrdu(text.charAt(0));
        System.out.println(text + " ... " + text.charAt(0));
        urduString = Character.toString(urduChar);
        fb.replace(offset, length, urduString, attr);
    }
}

谢谢。

最佳答案

Translate.translateToUrdu(char) 对输入键字符 (13) 有何作用? 这似乎是问题所在,因为您说您不使用 ActionListener

关于java - 实现 DocumentFilter 时 Enter 键不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8449096/

相关文章:

java - 如何在 tomcat 8 中将 Cookie 处理器更改为 LegacyCookieProcessor

java - javax.websocket.Session api

java - 关闭JFrame前如何提示用户确认退出

java - 如何正确地将 ActionListener 实现到 Composite 按钮类?

java - 调整标签、文本字段和按钮大小

java - RTFEditorKit read()/write() 错误?

java - 尝试打包 Blackberry 应用程序时出现无效类文件错误

java - Android:通过代码获取所有通知

java - 在 JTextPane 中选择嵌入项

java - 当 Pane 宽度超过指定值时,在 JTextPane 中换行文本