2016-08-05 4 views
1

Visual Studioの "Spy ++"プログラムのWindowFinderツールに似たツールを作成しようとしています。私はJFrameJmenuボタンを持っています。クリックするとダイアログが開き、OKボタンが表示されます。 Okをクリックすると、次にクリックされるものは、IDを取得したい別のウィンドウになります。マウスが私のウィンドウの外側にある

私は、画面のサイズで他のすべてのウィンドウの上に透明なウィンドウを作成し、マウスのリスナーを使ってその透明なウィンドウの次のクリックを待ち受けることでこの問題に取り掛かりました。ウィンドウを透明にしようとすると、ウィンドウ全体が暗く見えなくなります。

私はこのサイトで同様の問題が発生したため、かなりの数の解決策(12)を試しましたが、すべてがうまく終了しませんでした。私は、この方法を使用している間にこの問題を解決する方法のアドバイスを探しています。あるいは、私が試みていることを行うための全く新しい方法を探しています。また、私はこれをLinuxとWindowsの両方で動作させようとしていますが、現在はRedhat 6を使ってLinuxで最初に動作させようとしています。

何か助けをいただければ幸いです。

+0

で引くことができますしたい場合は

、私はスイングではなく、JavaFXのを使用してお勧めします。 JFrameは非推奨で、JavaFXは本当に素晴らしいです:) – Caelum

+2

私はJavaFxやこれにJavaツールを使用することはなく、むしろOSに慣れることのできる言語です。 –

+2

@Caelum 'JFrameは非推奨です'それは?あなたはリファレンスがありますか? – copeg

答えて

2

たJFrameが、あなたは位置が画面に関連するMouseInfo

PointerInfo pointerInfo = MouseInfo.getPointerInfo(); 
Point point = pointerInfo.getLocation(); 

System.out.println(point.getX()); //Prints the mouse's X position 
System.out.println(point.getY()); //Prints the mouse's Y position 

使用することができ、マウスの位置を取得する必要はありません(すべての左上隅が0、0)。あなたのコンポーネントの1に対する位置は、あなたがところでyourComponent.getLocationOnScreen()

+0

私はこのすべてを私のmouseClickedリスナーの中で行うでしょうか? – Bcmonks

+0

MouseInfo.getPointerInfo()は静的メソッドなので、どこからでも呼び出すことができます。マウスの位置を知りたい場所に置いてください。 – Caelum

+0

位置は私にとってはうまくいくが、私が設定したもの(JMenu、JPanelなど)の中をクリックするだけで済む。ウィンドウの外側をクリックできるように設定するにはどうすればよいですか? – Bcmonks

関連する問題