扫雷游戏制作全过程02 之JLabel弯路
来源:互联网 发布:cms影视系统哪个好 编辑:程序博客网 时间:2024/06/10 09:12
就在刚刚写好前一篇博客后,我本来想说“JButton如果可以实现一个MouseListener就太好了,可惜它实现不了”于是写了一例子。
结果证明我错了。
可以对JButton进行鼠标点击的监听(具体这里我只是简单的实现状态的切换,并没有再往下进行下去了)
当初我做上一步的时候,为了实现地雷的标记,于是放弃了JButton自己的ActionListener,而选用了MouseListener。可是后来无法监听鼠标事件,
现在想来,应该是少写了一句addMouseListener();
太好了,那么,后面我们就用这个Button来实现对地雷块的操作。
具体只改变了MyButton的一部分,代码如下:
class MyButton extends JButton implements MouseListener{private boolean is_mine = false; private int status = 0; boolean is_marked = false;public MyButton(){this.setLayout(null);setIcon(new ImageIcon("a.png"));setMargin(new Insets(0,0,0,0));setIconTextGap(0);setBorderPainted(false);setBorder(null);setText(null);addMouseListener(this);}public void beMarked() { this.setIcon(new ImageIcon("beMarked.png"));} public void digOut(){ switch(status) { case -1: this.setIcon(new ImageIcon("c.png"));break; case 0: this.setIcon(new ImageIcon("0.png"));break; case 1: this.setIcon(new ImageIcon("1.png"));break; case 2: this.setIcon(new ImageIcon("2.png"));break; case 3: this.setIcon(new ImageIcon("3.png"));break; case 4: this.setIcon(new ImageIcon("4.png")); break; case 5: this.setIcon(new ImageIcon("5.png"));break; case 6: this.setIcon(new ImageIcon("6.png"));break; case 7: this.setIcon(new ImageIcon("7.png"));break; case 8: this.setIcon(new ImageIcon("8.png")); break; }}public void setStatus(int copy_status){status = copy_status;}public boolean getIsMine(){ return is_mine;}@Overridepublic void mouseClicked(MouseEvent e){/**击左键*/if(e.getButton()==e.BUTTON1){digOut();}/**击右键*/else if(e.getButton() == e.BUTTON3){marked();}} public void marked() {if(is_marked){is_marked = false;setIcon(new ImageIcon("no_marked.png"));}else{is_marked = true;setIcon(new ImageIcon("marked.png"));}}@Overridepublic void mouseEntered(MouseEvent e) {}@Overridepublic void mouseExited(MouseEvent e) {}@Overridepublic void mousePressed(MouseEvent e) {}@Overridepublic void mouseReleased(MouseEvent e) {}}
修改后的源代码及资源已经上传,结果的截图如下:
- 扫雷游戏制作全过程02 之JLabel弯路
- 扫雷游戏制作全过程02 之 JButton 弯路
- 扫雷游戏制作全过程00
- 扫雷游戏制作全过程05 之最终话
- 扫雷游戏制作全过程04 添加音乐
- 扫雷游戏制作全过程01 地雷生成及表示
- 扫雷游戏制作全过程 03 时间伪动画
- Unity制作扫雷游戏
- 简单的扫雷游戏制作
- 用JAVA制作的扫雷游戏
- FOJ 1056之扫雷游戏
- 游戏扫雷编程之细节
- FZU 1056之扫雷游戏
- Java swing实现小游戏扫雷之扫雷游戏源码
- 经典游戏扫雷之js版
- 扫雷游戏
- 扫雷游戏
- 扫雷游戏
- 判断浏览器类型
- 设计模式学习(二) —— Factory Method
- 程序员总结:帮助你早些明白一些道理
- CSS 框架 Blueprint CSS
- Android 中LayoutInflater的使用
- 扫雷游戏制作全过程02 之JLabel弯路
- computer organization and design notes(3)-程序调用
- 安装vim插件,提高编程效率
- 设计模式学习(三) —— Builder
- 亲爱的姑娘~~~
- Wlan简明流程分析
- ARM Linux静态映射分析
- bash脚本循环测试sample
- 导弹拦截二&&http://acm.hdu.edu.cn/showproblem.php?pid=1257