A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 越雪 中级黑马   /  2017-4-12 22:37  /  1075 人查看  /  2 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

  使用一个 鼠标监听之后, 在一定的时候如何不再监听了?
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怎么处理???  求大神解决

2 个回复

倒序浏览
回复 使用道具 举报
哥们 有坦克大战源码么  有个小问题卡住了谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马