1

テキスト エディター コンポーネントに JPopupMenu を実装しようとしています。CTRL+m でアクティブにする必要があります。中でやりますか

@Override
public void keyPressed(KeyEvent arg0) {

}

はいの場合、どのように?だって、やってみたら

if(arg0.isControlDown()&&arg0.getKeyChar()=='m')

うまくいきません。

4

1 に答える 1

1

最初は、CTRL + Mがキャリッジリターン/ラインフィードと同じものであることに関係していると思いましたが、それは真実ではありませんでした。試す:

if(e.isControlDown() && e.getKeyCode() == KeyEvent.VK_M) {
    System.out.println("pressed");
    menu.setVisible(true);
}

e.getKeyChar()でcharsを使用しても機能しませんでしたが、getKeyCode()は機能します。素晴らしい、それは動作します。しかし、私はその理由を知らなければならないタイプです。だから私はこれを見つけまし

KEY_PRESSEDおよびKEY_RELEASEDイベントは、文字入力のレポートを目的としたものではありません。したがって、このメソッドによって返される値は、KEY_TYPEDイベントに対してのみ意味があることが保証されています。

于 2011-06-20T22:01:04.293 に答える