java游戏学习_通过游戏学习java面向对象编程(1)

计划通过一个小游戏来介绍java面向对象编程,事件处理机制,以及swing相关的知识。

本来这个是08年在西安讲授java -oop时就已经给学生上课演示过的现场例子,现在拿出来晒晒。

游戏初始界面:25个红色的小方块(实际上就是25个按钮)。

如图1

0_1270809939EsG1.gif

图1游戏初始界面

点击某一个方块之后,被点击的方块和它周围相邻的方块都变成黄色。

如图2

0_12708099533NIT.gif

图2-点击中间方块之后的效果

0_1270809969jk06.gif

图3-点击左上角之后的效果

0_1270810007RAgu.gif

图4-全部完成之后的效果。

下面我们来介绍开发过程。

首先需要一个Button,这个Button可以从swing的jbutton继承而来。但是我们的button要会变颜色。并且为了后边的需要,我们最好给它2个属性,用来表示x,y坐标。代码如下:

package com.pengzj.openwindow;

import java.awt.Color;

import javax.swing.*;

//先定义我们自己的具有特色的按钮,当然最好继承于JButton

//这种按钮它带有X,Y坐标,它有自己的变颜色的方法

/*

* @author pengzj

* @date 2008/02/19

*/

public class MyButton extends JButton{

private int xCord;//x坐标

private int yCord; //y坐标

public MyButton(){

}

//此构造方法可以设置这个按钮的X,Y坐标

public MyButton(int x,int y){

this.xCord=x;

this.yCord=y;

this.setBackground(Color.red); //设置按钮的初始颜色

}

//改变按钮颜色的方法

public void changeColor(){

if(this.getBackground()==Color.red){ //如果按钮的背景色是白色则变成兰色,反之亦然(vice versa)

this.setBackground(Color.yellow); //当然你可以任意设置你自己需要的颜色

}else

{

this.setBackground(Color.red);

}

}

//省略X,y属性的getter/setter方法

}

然后生成游戏的主界面。

/*******************************************

* T110班开窗户游戏v1.0版(上课现场演示版)

* @author pengzj

* @date :2008/02/19

*********************************************/

package com.pengzj.openwindow;

import java.awt.Color;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.*;

public class Game {

final static int N=5;

JFrame frame;

JPanel btnPanel;

MyButton[][] buttons;//声明一个二维数组

public Game() {

init();

}

public void init(){

//设定一个网格布局,n*n

GridLayout gridLayout =new GridLayout(N,N);

btnPanel =new JPanel(gridLayout);

//实例化一个5*5数组

buttons =new MyButton[N][N];

int i=0;

int j=0;

for(i=0;i

for(j=0;j

buttons[i][j]=new MyButton(i,j);//赋一个坐标,相当于贴标签

btnPanel.add(buttons[i][j]);//依次将每个button放到panel中去

buttons[i][j].addActionListener(new buttonHandler(buttons[i][j]));

}

}

frame =new JFrame("翻按钮游戏");

frame.getContentPane().add(btnPanel);

frame.setSize(400,300);

frame.validate();

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

运行之后就可以看到如图1的初始界面了。

接下来就要做的是点击按钮,按钮变色的策略。以及检测游戏完成的功能。下次再讲。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值