java拼图游戏代码

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

Puzzle类:

package com.eavan;

public class Puzzle {

public static void main(String[] args) { // TODO Auto-generated method stub

new PuzzleWin();

}

}

PuzzleWin类:

/**

* 可以为游戏添加一个计时的功能,让时间成为一个判定标准* 可以分析一下为什么图片不清楚

* 可以向怎么能够让选择图片和选择难度没有顺序性(较容易)*

*/

package com.eavan;

import java.awt.Color;

import java.awt.FileDialog;

import java.awt.Graphics;

import java.awt.GraphicsConfiguration;

import java.awt.GraphicsDevice;

import java.awt.GraphicsEnvironment;

import java.awt.GridLayout;

import java.awt.HeadlessException;

import java.awt.Image;

import java.awt.Transparency;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.image.BufferedImage;

import java.util.ArrayList;

import java.util.Random;

import javax.swing.BorderFactory;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextArea;

public class PuzzleWin extends JFrame implements ActionListener{

int dif = 0; //设置难度级数

int k = 0; //标记是随机数list中的第几个随机数(从而用于标记图像list 中的第几个图片)

String filename="a.jpg"; //设置的图片打开路径。默认路径其实是没用的

int step = 0; //用于记录总共用了多少步完成拼图

JMenuBar mBar = new JMenuBar();

JMenu jmSysten = new JMenu("系统");

JMenu jmGame = new JMenu("游戏");

JMenuItem restart = new JMenuItem("重新开始");

JMenuItem quit = new JMenuItem("退出");

JMenuItem choosepic = new JMenuItem("选择图片");

JMenu choosedif = new JMenu("选择难度");

JMenuItem easy = new JMenuItem("3*3");

JMenuItem hard = new JMenuItem("4*4");

JPanel mainPanel = new JPanel();

JButton[][] btn = null; //用于显示被分割的图片

ImageIcon checkIcon[][] = null; //用于存放一个正确顺序放置被分割后的图片的数组,最后与btn[][]的icon对比检测是否完成拼图

JLabel piclab = new JLabel(); //用于显示对照图片

JLabel namelab = new JLabel("对照图片:"); //用于在对照图片上面给出提醒

JLabel steplab = new JLabel(); //用于记录步数信息

JTextArea helpArea = new JTextArea(); //用于显示操作提示信息

JLabel designLabel = new JLabel(); //用于显示者设计信息

public PuzzleWin(){

this.setTitle("拼图游戏");

this.setSize(600, 500);

this.setLayout(null);

this.setLocation(200,120);

this.setResizable(false); //因使用的大多是绝对布局,还是不要更改窗体大小吧

this.setVisible(true);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//添加menu,用于显示各种菜单

mBar.add(jmSysten);

mBar.add(jmGame);

setJMenuBar(mBar);

jmSysten.add(restart);

jmSysten.add(quit);

jmGame.add(choosedif);

jmGame.add(choosepic);

choosedif.add(easy);

choosedif.add(hard);

//设置分割图片显现的位置,使用的都是绝对布局

mainPanel.setBounds(30,30,360,360);

mainPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));

this.add(mainPanel);

//设置对照图片的大小坐标(用一个label作为盛放pic的容器)

//显示对照图片

namelab.setBounds(450, 10, 80, 15);

steplab.setBounds(450, 160, 80, 15);

piclab.setBorder(BorderFactory.createLineBorder(Color.BLACK));

steplab.setText("步数:"+step);

piclab.setBounds(450, 30, 110, 110);

helpArea.setBounds(420, 220, 150, 120);

helpArea.setBackground(new Color(192, 192, 192));

helpArea.setText("由于本人水平有限,请按照\r\n先在游戏菜单中选择游戏难\r\n 度,再选择图片的顺序进行\r\n游戏。\r\n\r\n祝玩得开心-.-");

helpArea.setEditable(false);

designLabel.setBounds(30, 370, 200, 100);

designLabel.setText("Design By Eavan In Haust");

this.add(namelab);

this.add(piclab);

this.add(steplab);

this.add(helpArea);

this.add(designLabel);

//对menu里的各种按钮注册监听

restart.addActionListener(this);

quit.addActionListener(this);

相关文档
最新文档