拼图java 源代码,Java语言实现拼图游戏源代码
/*
* 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语言实现拼图游戏源代码相关推荐
- Python儿童数字消消乐游戏源代码,小朋友认数字游戏源代码
Python儿童数字消消乐源代码,小朋友认数字游戏源代码,通过消消乐游戏的方式来让小朋友来学习数字,让孩子在玩中学数字 完整代码下载地址:Python儿童数字消消乐游戏源代码 核心代码 import ...
- c语言换装游戏源代码,C语言游戏源代码
C语言游戏源代码 C语言游戏源代码 1. 简单的开机密码程序 #include "conio.h" #include "string.h" #include & ...
- 转账 程序c语言,求C语言原创小游戏源代码(运行成功可支付宝转账)急!!!
贪吃蛇:#include #include #include #include #include #include #define A 39 void sj(int * a,int * b); int ...
- android米思奇打地鼠源代码,打地鼠 - 源码下载|游戏|源代码 - 源码中国
打地鼠 打地鼠\.classpath 打地鼠\.project 打地鼠\.settings 打地鼠\.settings\org.eclipse.jdt.core(1).prefs 打地鼠\.setti ...
- c语言程序图书检索源代码,C语言程序设计(图书管理系统)源代码 倾情奉献
用C语言综合开发一个图书信息管理系统,要求用到函数.数组.链表.结构体.文件等C语言基础知识.图书信息包括:图书编号.书名.作者.出版社.类别.出版时间.价格等基本信息(也可以根据自己情况进行扩充,比 ...
- c语言注册登录系统代码6,C语言程序设计(图书管理系统)源代码.doc(6)
h"#include#include/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ...
- Java实训项目一一拼图游戏(附源码)
1 实训基本信息 1.1 实训项目名称 (1)拼图游戏 1.2 实训环境 本次实训内容主要针对专业学生,实训形式以实战讲解为主导.实训课程由实训老师主讲,实训老师教学严谨又平易近人,讲解的内容非常细致 ...
- 拼图java代码_Java制作智能拼图游戏原理及代码
今天突发奇想,想做一个智能拼图游戏来给哄女友. 需要实现这些功能 第一图片自定义 第二宫格自定义,当然我一开始就想的是3*3 4*4 5*5,没有使用3*5这样的宫格. 第三要实现自动拼图的功能,相信 ...
- 三星游戏java ball_JavaBallGame 使用 语言设计的弹球游戏,可以学习 编写小 的方法。 Program 238万源代码下载- www.pudn.com...
文件名称: JavaBallGame下载 收藏√ [ 5 4 3 2 1 ] 开发工具: Java 文件大小: 55 KB 上传时间: 2014-03-18 下载次数: 0 提 供 者: p ...
最新文章
- Element el-switch 组件样式修改 将文字显示到组件内
- 软件体系结构风格(第5-8课时)
- Java中实现根据一个List中的数据的两个属性相同划分为同一类
- PowerDesigner如何将物理模型转为对象模型,将对象模型转生成Java类
- [改善Java代码]构造函数尽量简化
- Spring简介-Spring的优势
- 计算机网络原理笔记-简单邮件传输协议
- 树的距离(牛客网树上主席树+dfs序)
- oracle扩容日志文件,调整Oracle Redo Logfile日志文件的大小
- 女朋友生气了吗?算法比直男更懂她
- RS232电平 RS485电平 RS422电平 TTL电平
- datalist 给输入框绑定文本提示(大部分浏览器不支持)
- System76 是如何打造开源硬件的
- Leedcode错误 error:control reaches end of non-void function[-Werror=return-type]
- PDF文件加密解密-文件设置密码
- 【Spring Data ElasticSearch】高级查询,聚合
- 微信开放平台开发 微信登录
- binlog流程 mysql_MySQL binlog分析程序:Open Replicator
- 网站突然服务器到期,网站云服务器到期释放
- 雨润莲心:同幽梦、共红尘