/*

* JAVA小游戏-拼图 我做的第一个小游戏

* Cell类是继承的按钮类,并加上相应图形,形成方格

*MyCanvas是一个面板,加载Cell类的对象(方格),是这三个类中的核心

*/

import java.awt.Rectangle;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Choice;

import java.awt.Color;

import java.awt.Container;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.Icon;

import javax.swing.JButton;

public class MyMainFrame extends JFrame implements ActionListener {

MyCanvas myCanvas;

JPanel panelNorth,panelPreview;//定义上方的面板,及预览所需的面板

Button start,preview,set;//定义开始,预览,设定按钮

Container container;//容器,得到内容面板

public MyMainFrame() {//初使化

container=this.getContentPane();

start=new Button("开始");

start.addActionListener(this);

preview=new Button("预览");

preview.addActionListener(this);

set = new Button("设置");

set.addActionListener(this);

panelPreview=new JPanel();

panelPreview.setLayout(null);

Icon icon=new ImageIcon("pic_"+MyCanvas.pictureID+".jpg");

JLabel label=new JLabel(icon);

label.setBounds(0,0,300,300);

panelPreview.add(label);

panelNorth=new JPanel();

panelNorth.setBackground(Color.red);

panelNorth.add(start);

panelNorth.add(preview);

panelNorth.add(set);

myCanvas=new MyCanvas();

container.add(myCanvas,BorderLayout.CENTER);

container.add(panelNorth,BorderLayout.NORTH);

this.setTitle("拼图小游戏-明");

this.setLocation(300,200);

this.setSize(308,365);

this.setResizable(false);

this.setVisible(true);

this.setDefaultCloseOperation(3);

}

public static void main(String[] args) {

// TODO 自动生成方法存根

new MyMainFrame();

}

public void actionPerformed(ActionEvent arg0) {//对三个按钮事件的处理

// TODO 自动生成方法存根

Button button=(Button)arg0.getSource();

if(button==start){

myCanvas.Start();

}else if(button==preview){

if(button.getLabel()=="预览"){

container.remove(myCanvas);

container.add(panelPreview);

panelPreview.updateUI();

container.repaint();

button.setLabel("返回");

}else{

container.remove(panelPreview);

container.add(myCanvas);

container.repaint();

button.setLabel("预览");

}

}else if(button==set){//修改所选图片

Choice pic = new Choice();

pic.add("小猫");

pic.add("小猪");

pic.add("云");

pic.add("QQ");

pic.add("卡通");

pic.add("花");

int i=JOptionPane.showConfirmDialog(this, pic, "选择图片", JOptionPane.OK_CANCEL_OPTION);

if(i==JOptionPane.YES_OPTION){

MyCanvas.pictureID=pic.getSelectedIndex()+1;

myCanvas.reLoadPictrue();

Icon icon=new ImageIcon("pic_"+MyCanvas.pictureID+".jpg");

JLabel label=new JLabel(icon);

label.setBounds(0,0,300,300);

panelPreview.removeAll();

panelPreview.add(label);

panelPreview.repaint();

}

}

}

}

class MyCanvas extends JPanel implements MouseListener {

boolean hasAddActionListener=false;//设置方格的动作监听器的标志位,TRUE为已经添加上动作事件,FALSE是尚未添加动作事件

Cell cell[];//定义方格

Rectangle cellNull;//定义空方格区域

public static int pictureID=1;//当前选择的图片代号

public MyCanvas() {

this.setLayout(null);

this.setSize(400,400);

cellNull=new Rectangle(200,200,100,100);//空方格区域在第三行每三列

cell=new Cell[9];

Icon icon;

for (int i = 0; i < 3; i++) {//为9个方格加载图片,并初使化坐标,形成三行三列

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

icon=new ImageIcon("pic_"+pictureID+"_"+(i*3+j+1)+".jpg");

cell[i*3+j]=new Cell(icon);

cell[i*3+j].setLocation(j*100,i*100);

this.add(cell[i*3+j]);

}

}

this.remove(cell[8]);//移除最后一个多余的方格

}

拼图java 源代码,Java语言实现拼图游戏源代码相关推荐

  1. Python儿童数字消消乐游戏源代码,小朋友认数字游戏源代码

    Python儿童数字消消乐源代码,小朋友认数字游戏源代码,通过消消乐游戏的方式来让小朋友来学习数字,让孩子在玩中学数字 完整代码下载地址:Python儿童数字消消乐游戏源代码 核心代码 import ...

  2. c语言换装游戏源代码,C语言游戏源代码

    C语言游戏源代码 C语言游戏源代码 1. 简单的开机密码程序 #include "conio.h" #include "string.h" #include & ...

  3. 转账 程序c语言,求C语言原创小游戏源代码(运行成功可支付宝转账)急!!!

    贪吃蛇:#include #include #include #include #include #include #define A 39 void sj(int * a,int * b); int ...

  4. android米思奇打地鼠源代码,打地鼠 - 源码下载|游戏|源代码 - 源码中国

    打地鼠 打地鼠\.classpath 打地鼠\.project 打地鼠\.settings 打地鼠\.settings\org.eclipse.jdt.core(1).prefs 打地鼠\.setti ...

  5. c语言程序图书检索源代码,C语言程序设计(图书管理系统)源代码 倾情奉献

    用C语言综合开发一个图书信息管理系统,要求用到函数.数组.链表.结构体.文件等C语言基础知识.图书信息包括:图书编号.书名.作者.出版社.类别.出版时间.价格等基本信息(也可以根据自己情况进行扩充,比 ...

  6. c语言注册登录系统代码6,C语言程序设计(图书管理系统)源代码.doc(6)

    h"#include#include/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...

  7. Java实训项目一一拼图游戏(附源码)

    1 实训基本信息 1.1 实训项目名称 (1)拼图游戏 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...

  8. 拼图java代码_Java制作智能拼图游戏原理及代码

    今天突发奇想,想做一个智能拼图游戏来给哄女友. 需要实现这些功能 第一图片自定义 第二宫格自定义,当然我一开始就想的是3*3 4*4 5*5,没有使用3*5这样的宫格. 第三要实现自动拼图的功能,相信 ...

  9. 三星游戏java ball_JavaBallGame 使用 语言设计的弹球游戏,可以学习 编写小 的方法。 Program 238万源代码下载- www.pudn.com...

    文件名称: JavaBallGame下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 55 KB 上传时间: 2014-03-18 下载次数: 0 提 供 者: p ...

最新文章

  1. Element el-switch 组件样式修改 将文字显示到组件内
  2. 软件体系结构风格(第5-8课时)
  3. Java中实现根据一个List中的数据的两个属性相同划分为同一类
  4. PowerDesigner如何将物理模型转为对象模型,将对象模型转生成Java类
  5. [改善Java代码]构造函数尽量简化
  6. Spring简介-Spring的优势
  7. 计算机网络原理笔记-简单邮件传输协议
  8. 树的距离(牛客网树上主席树+dfs序)
  9. oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小
  10. 女朋友生气了吗?算法比直男更懂她
  11. RS232电平 RS485电平 RS422电平 TTL电平
  12. datalist 给输入框绑定文本提示(大部分浏览器不支持)
  13. System76 是如何打造开源硬件的
  14. Leedcode错误 error:control reaches end of non-void function[-Werror=return-type]
  15. PDF文件加密解密-文件设置密码
  16. 【Spring Data ElasticSearch】高级查询,聚合
  17. 微信开放平台开发 微信登录
  18. binlog流程 mysql_MySQL binlog分析程序:Open Replicator
  19. 网站突然服务器到期,网站云服务器到期释放
  20. 雨润莲心:同幽梦、共红尘

热门文章

  1. 痛心!中兴程序员跳楼始末:或成其公司内部矛盾牺牲品
  2. 各类学生机万能卸载攻略
  3. workbench导入excel
  4. SEO页面优化方案指南
  5. dble配置mysql主从同步
  6. 顾客信息表mysql_Qt5.5.0使用mysql编撰小软件源码讲解-顾客信息登记表_mysql
  7. Spring Ioc
  8. android分辨率2k3k4k,android 不同分辨率适配
  9. 利用-flat.vmdk文件恢复ESXI虚拟机的vmdk文件
  10. 计算机运维方向要考什么证,IT运维项目经理考的证