リモートデスクトップ/VNCクライアントのようなものを開発しようとしています。クライアント ウィンドウですべてのイベントをキャプチャする必要があります。私が使用している方法は、のprocessEvent
メソッドをオーバーライドすることですJFrame
:
@Override
protected void processEvent(AWTEvent e) {
...
}
ただし、Windows
キーやAlt+Tab
ウィンドウなどのイベントでは非アクティブになっています。
...
00000191 KEY_PRESSED,keyCode=524,keyText=Windows,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=91,primaryLevelUnicode=0,scancode=91,extendedKeyCode=0x20c
00000192 KEY_RELEASED,keyCode=524,keyText=Windows,keyChar=Undefined keyChar,keyLocation=KEY_LOCATION_LEFT,rawCode=91,primaryLevelUnicode=0,scancode=91,extendedKeyCode=0x20c
000000ce WINDOW_DEACTIVATED,opposite=null,oldState=0,newState=0
...
このようなイベントでウィンドウをアクティブに保つにはどうすればよいですか?
これよりも純粋なJavaソリューションをお勧めします。純粋なJavaソリューションがない場合、誰かがJNAソリューション(またはその事実に対する他のソリューション)を教えてもらえますか?
EDIT1: * ウィンドウの非アクティブ化に対するあいまいな用語「フォーカス」を解決しました * 非純粋な Java ソリューションが受け入れられることを強調しました