java拼图游戏完整代码

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

// Cell.java

package cn.itcast.picture.ui;

import javax.swing.Icon;

import javax.swing.JButton;

/*

* 图片小方格类

*/

public class Cell extends JButton {

//带有图片的小方格

public Cell(Icon icon) {

super(icon);

//设置小方格大小

this.setSize(150, 150);

}

//带有图片和文字的小方格

public Cell(String text, Icon icon) {

super(text, icon);

//设置小方格大小

this.setSize(150, 150);

this.setHorizontalTextPosition(CENTER);//设置文字水平居中显示

this.setVerticalTextPosition(CENTER);//设置文字垂直居中显示

}

//

public void move(String direction) {

switch (direction) {

case "UP":

this.setLocation(this.getBounds().x,this.getBounds().y-150);

break;

case "DOWN":

this.setLocation(this.getBounds().x,this.getBounds().y+150);

break;

case "LEFT":

this.setLocation(this.getBounds().x-150,this.getBounds().y);

break;

case "RIGHT":

this.setLocation(this.getBounds().x+150,this.getBounds().y);

break;

default:

break;

}

}

}

//PictureCanvas.java

package cn.itcast.picture.ui;

import java.awt.Rectangle;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.ImageIcon;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

/*

* 拼图类

*/

public class PictureCanvas extends JPanel implements MouseListener { //静态变量

public static int pictureID = 1;//图片ID

public static int stepNum = 0;//步数

private Cell[] cell;

private boolean hasAddActionListener = false;//表示是否为小方格添加了点击监听,有为true

private Rectangle nullCell;

//构造方法

public PictureCanvas() {

initCanvas();

}

//初始化

public void initCanvas(){

//设置拼图区的位置

this.setLayout(null);//帧布局

//创建12个小方格,并添加到拼图区

cell = new Cell[12];

for(int i = 0;i < 4;i++){

for(int j = 0;j < 3;j++){

//加载图片

int num = i*3+j;

ImageIcon icon = new ImageIcon("picture/"+pictureID+"_"+(num+1)+".gif");

//创建图片小方格

cell[num] = new Cell(icon);

//指定显示位置

cell[num].setLocation(150*j+20, i*150+20);

//把图片小方格添加到拼图区

this.add(cell[num]);

}

}

//删除第12个小方格

this.remove(cell[11]);

nullCell = new Rectangle(320, 470, 150, 150);

hasAddActionListener = false;

}

//重新加载图片,并添加数字提示

public void reloadPictureAddNumber() {

for(int i = 0;i < 4;i++){

for(int j = 0;j < 3;j++){

int num = i*3+j;

ImageIcon icon = new ImageIcon("picture/"+pictureID+"_"+(num+1)+".gif");

cell[num].setIcon(icon);

cell[num].setText(num+1+"");

cell[num].setVerticalTextPosition(getY()/2);

cell[num].setHorizontalTextPosition(getX()/2);

}

}

}

//重新加载图片,并清除数字提示

public void reloadPictureClearNumber() {

for(int i = 0;i < 4;i++){

for(int j = 0;j < 3;j++){

int num = i*3+j;

相关文档
最新文档