1

アラビア語のテキストをサポートするアプリケーションを開発しています。システムレベルの言語は使用していません。ユーザーはキーを押すだけで、そのキーに従ってアラビア語の 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);
    }
}
4

1 に答える 1