透明なウィンドウ オーバーレイを表示する方法があるので、クリックで画面上の四角形のコーナー ポイントを示すことができます。
public Point getClickPoint(){
JFrame frame = new JFrame("");
MyMouseListener mouseL = new MyMouseListener();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setUndecorated(true);
makeTranslucent(frame, Float.valueOf(0.40f));
frame.setSize(toolkit.getScreenSize());
frame.setVisible(true);
frame.addMouseListener(mouseL);
while(!mouseL.done){
try {
Thread.sleep(4);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
これを通常の方法で呼び出すと正常に動作しますが、ボタンを押して呼び出すとハングし、クリックが登録されず、最終的にフリーズします。
Button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
getClickPoint();
}
}
これは、アクション リスナーによって最初に呼び出されたという事実と関係がありますか?