黑马程序员技术交流社区

标题: 关于鼠标监听的问题 [打印本页]

作者: 越雪    时间: 2017-4-12 22:37
标题: 关于鼠标监听的问题
  使用一个 鼠标监听之后, 在一定的时候如何不再监听了?
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怎么处理???  求大神解决

作者: 闪光的stone    时间: 2017-4-14 08:14
。。。。。

作者: chengfw    时间: 2017-4-17 14:41
哥们 有坦克大战源码么  有个小问题卡住了谢谢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2