使用一个 鼠标监听之后, 在一定的时候如何不再监听了?
package com.game;
import java.awt.Color;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import com.itheima.game.GameEngine;
import com.itheima.game.HeimaAbstractWorld;
public class Game extends HeimaAbstractWorld {
@Override
public void logic() {
GameEngine.setGameBackGround("背景.jpg");
GameEngine.setGameSize(800, 400);
GameEngine.createText("1", "开始游戏");
GameEngine.setTextPosition("1", 300, 200);
GameEngine.setTextColor("1", Color.red);
GameEngine.addMouseListener(new MouseListener() {
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseClicked(MouseEvent e) {
System.out.println("鼠标点击了无效区域");
int x = e.getX();
int y = e.getY();
if (x >= 300 && x <= 420 && y >= 202 && y <= 230) {
// x: 300-420 y:202-230
if(GameEngine.showConfirmDialog("前方困难重重, 少侠是否要接受挑战?")){
String name=GameEngine.showInputDialog("张三", "请输入少侠的大名");
GameEngine.showMessageDialog("欢迎"+name+"英雄加入挑战,游戏开始");
GameEngine.clear();
GameEngine.setGameBackGround("背景2.jpg");
}else{
GameEngine.showMessageDialog("您即将退出游戏");
try {
Thread.sleep(500);
} catch (InterruptedException e1) {
e1.printStackTrace();
}
GameEngine.exit();
}
}
}
});
GameEngine.setMinRunningTime(60000);
}
}
比如以上代码,当切换到背景2的时候,虽然已经把之前的文字框都清楚了,但是鼠标点击任意位置还是会被监听到
点击一般位置 输出台会打印 "点击了无效区域"
如果点击的位置恰好在文本区域内(虽然已经看不到了) 但是还是会出现对话框
这个bug怎么处理??? 求大神解决
|