アラビア語のテキストをサポートするアプリケーションを開発しています。システムレベルの言語は使用していません。ユーザーはキーを押すだけで、そのキーに従ってアラビア語の Unicode が JTextArea に挿入されます。クラス ArabTextArea を作成し、Swing の JTextArea で拡張しました。このクラスにオーバーライド関数 processKeyEvent(KeyEvent e) を含めました。今私の問題は、キーを押すたびに、この関数が 3 回トリガーされることです。1 回目は KeyDown、2 回目は KeyUp、3 回目は KeyPressed です。この関数を一度だけトリガーしたいのですが、方法がわかりません。誰か助けてください...
次のコードを使用しています
@Override
protected void processKeyEvent(KeyEvent event) {
switch (event.getKeyChar()) {
case 'a':
append("\u0627");
break;
case 'H':
append("\u062D");
break;
case 'm':
append("\u0645");
break;
case 'd':
append("\u062F");
break;
default:
super.processKeyEvent(event);
}
}