这是我的乌尔都语文本编辑器的图像。
正如您所看到的,当我尝试显示乌尔都语字符时,英语字符也会显示出来。
我正在为这个文本组件实现我自己的键盘监听器,当有按键时,我将该键作为一个字符,将其翻译为相应的Urdu,使用document.insertString()
方法将其插入textPane中,但英文字符也会自动显示。
我该怎么做才能让这个英文字符不显示在组件中,只显示我从英语翻译的乌尔都语字符?
@Harrison F:这是您要求的代码
char b = e.getKeyChar();// e is the object of class KeyEvent
char c = Translate.translateToUrdu(b);// its my own class for translation
s = s+c;// converting the character to string.
doc.insertString(carretPos,s,null); // inserting into the document
s = ""; //setting the string object to "" so that next time i can use it again.
编辑:我的问题是通过实施扩展DocumentFilter
然后覆盖其insertString
和replaceString
方法的类来解决的。现在还存在另一个问题,就是我的回车键现在不能正常工作以及其他一些控制键如ctrl。如何使这些键在我的文档过滤器中工作?
答案 0 :(得分:0)
s = s+c
锁定怀疑。
已经尝试过了
char c = Translate.translateToUrdu(e.getKeyChar());
doc.insertString(carretPos,new String(c),null);
?