我想要一個鼠標點擊開始一個循環,報告鼠標的位置,直到點擊鼠標。我沒有問題開始循環和報告位置,但即使MouseClicked方法結束循環,如果鼠標單擊兩次或應該,程序會無限地繼續循環。使用MouseListener開始或結束一個無限循環
public JFramethingy() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.addMouseListener(new MouseAdapter() {
int numClicked;
public void mouseClicked(MouseEvent arg0) {
numClicked++;
for (int i = 0; i > -1;) {
if(i % 1002000 == 0){
PointerInfo a = MouseInfo.getPointerInfo();
Point b = a.getLocation();
int x = (int) b.getX();
int y = (int) b.getY();
System.out.println(x + "," + y);
}
if (numClicked > 1){
numClicked = 0;
i = -3;
}
i++;
}
}
});
當您第一次點擊鼠標並調用mouseClicked()方法時,它將保持無限循環並永不返回。這意味着任何其他事件,包括進一步的鼠標點擊將永遠不會被處理,因此您的mouseClicked()將永遠不會再被調用。 –