我有一个方法可以显示一个透明的窗口覆盖,这样我就可以通过点击来指示一个矩形屏幕区域的角点。
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();
}
}
这与动作侦听器最初调用它的事实有关吗?