Javaアプリケーションでショートカットを作成しています。ユーザーがGを押すと、ダイアログがポップアップします。しかし、私は、ユーザーがテキストフィールドに入力しているときにこれが起きないようにします。キーリリースイベントが発生したときに領域のタイプを検出する方法はありますか?そのため、ユーザーがテキストフィールドにないときにダイアログウィンドウのポップアップを作成できるだけですか?Javaでキー押下イベントが発生した場合の領域のタイプを確認
ありがとうございます。
Javaアプリケーションでショートカットを作成しています。ユーザーがGを押すと、ダイアログがポップアップします。しかし、私は、ユーザーがテキストフィールドに入力しているときにこれが起きないようにします。キーリリースイベントが発生したときに領域のタイプを検出する方法はありますか?そのため、ユーザーがテキストフィールドにないときにダイアログウィンドウのポップアップを作成できるだけですか?Javaでキー押下イベントが発生した場合の領域のタイプを確認
ありがとうございます。
Window.getFocusOwner()を使用して、アプリケーションにフォーカスを持つComponentを取得し、instanceof checkを使用できます。例えば
:
public void keyReleased(KeyEvent e)
{
if(e.getKeyCode() == KeyEvent.VK_G && !(myWindow.getFocusOwner() instanceof TextField))
{
showDialog();
}
}
これは本当に必要ですか?テキストフィールドは 'G'だけを消費し、 'G'がタイプされているという事実は、他のものによって消費されていないときにダイアログコードに到達するはずです。 AKJで提案されているようなキーバインディングを使用すると、これが可能になるはずです – Robin
http://docs.oracle.com/javase/tutorial/uiswing/misc/keybinding.html助けになるかもしれません。 –