我通过继承原始的 DocumentFilter
类并重写它的 insert
和 replace
方法来实现文档过滤器。它响应除 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/