テキスト エディター コンポーネントに JPopupMenu を実装しようとしています。CTRL+m でアクティブにする必要があります。中でやりますか
@Override
public void keyPressed(KeyEvent arg0) {
}
はいの場合、どのように?だって、やってみたら
if(arg0.isControlDown()&&arg0.getKeyChar()=='m')
うまくいきません。
テキスト エディター コンポーネントに JPopupMenu を実装しようとしています。CTRL+m でアクティブにする必要があります。中でやりますか
@Override
public void keyPressed(KeyEvent arg0) {
}
はいの場合、どのように?だって、やってみたら
if(arg0.isControlDown()&&arg0.getKeyChar()=='m')
うまくいきません。
最初は、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イベントに対してのみ意味があることが保証されています。