收藏 分享(赏)

JAVA拼图游戏完整代码.pdf

上传人:精品资料 文档编号:8489196 上传时间:2019-06-29 格式:PDF 页数:12 大小:82.92KB
下载 相关 举报
JAVA拼图游戏完整代码.pdf_第1页
第1页 / 共12页
JAVA拼图游戏完整代码.pdf_第2页
第2页 / 共12页
JAVA拼图游戏完整代码.pdf_第3页
第3页 / 共12页
JAVA拼图游戏完整代码.pdf_第4页
第4页 / 共12页
JAVA拼图游戏完整代码.pdf_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、/ Cell.javapackage 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, i

2、con);/设 置 小 方 格 大 小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“

3、: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.javapackage cn.itcast.picture.ui;import java.aw

4、t.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;/图 片 IDpublic st

5、atic int stepNum = 0;/步 数private Cell cell;privateboolean hasAddActionListener= false;/表 示 是 否 为 小 方 格 添 加 了 点 击 监 听 ,有 为 trueprivate Rectangle nullCell;/构 造 方 法public PictureCanvas() initCanvas();/初 始 化public void initCanvas()/设 置 拼 图 区 的 位 置this.setLayout(null);/帧 布 局/创 建 12个 小 方 格 , 并 添 加 到 拼 图 区

6、cell = new Cell12;for(int i = 0;i comboBox;private JTextField name;public static JTextField step;private JButton start;/ 空 参 数 构 造 方 法public PictureMainFrame() /super();init();/界 面 初 始 化addComponent();/添 加 组 建addPreviewImage();/添 加 预 览 图 片 与 拼 图 图 片addActionListener();/为 组 建 添 加 事 件 监 听private void

7、addActionListener() /数 值 提 示addNumberInfo.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) /完 成 数 字 提 示 的 显 示canvas.reloadPictureAddNumber(););clearNumberInfo.addActionListener(new ActionListener() Overridepublic void actionPerformed(ActionEvent e) /完 成 数 值 提

8、 示 的 清 除canvas.reloadPictureClearNumber(););comboBox.addItemListener(new ItemListener() Overridepublic void itemStateChanged(ItemEvent e) /获 取 选 择 图 片 的 序 号int num = comboBox.getSelectedIndex();/ 更 新 预 览 区PictureCanvas.pictureID = num+1;preview.repaint();/重 新 绘 制 预 览 区 界 面/更 新 拼 图 区canvas.removeAll(

9、);canvas.initCanvas();canvas.repaint();/ canvas.reloadPictureClearNumber();/更 新 游 戏 状 态 区name.setText(“图 片 名 称 : “+comboBox.getSelectedItem();PictureCanvas.stepNum = 0;step.setText(“步 数 : “+0);/更 新 按 钮 区clearNumberInfo.setSelected(true););start.addActionListener(new ActionListener() Overridepublic v

10、oid actionPerformed(ActionEvent e) / 更 新 游 戏 状 态 区 步 数 : 0PictureCanvas.stepNum = 0;step.setText(“步 数 : 0“);/将 小 方 格 位 置 随 机 打 乱canvas.start(););private void addPreviewImage() /创 建 面 板 , 包 含 拼 图 区 和 预 览 区JPanel panel = new JPanel();panel.setLayout(new GridLayout(1,2);/设 置 成 1X2的 表 格 布 局canvas = new

11、PictureCanvas();canvas.setBorder(new TitledBorder(“拼 图 区 “);preview = new PicturePreview();preview.setBorder(new TitledBorder(“预 览 区 “);panel.add(canvas,BorderLayout.WEST);panel.add(preview,BorderLayout.EAST);/-/把 面 板 显 示 在 主 界 面 中this.add(panel,BorderLayout.CENTER);private void addComponent() JPane

12、l panel = new JPanel();panel.setBackground(Color.PINK);panel.setLayout(new GridLayout(1, 2);JPanel leftPanel = new JPanel();leftPanel.setBackground(Color.PINK);leftPanel.setBorder(new TitledBorder(“按 钮 区 “);addNumberInfo = new JRadioButton(“数 字 提 示 “,false);addNumberInfo.setBackground(Color.PINK);cl

13、earNumberInfo = new JRadioButton(“清 楚 提 示 “,true);clearNumberInfo.setBackground(Color.PINK);comboBox = new JComboBox(items);comboBox.setPreferredSize(new Dimension(100, 24);start = new JButton(“开 始 “);start.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);start.setBackground(Color.PINK);Butt

14、onGroup buttonGroup = new ButtonGroup();buttonGroup.add(addNumberInfo);buttonGroup.add(clearNumberInfo);leftPanel.add(addNumberInfo);leftPanel.add(clearNumberInfo);leftPanel.add(new JLabel(“ 选 择 图 片 : “);leftPanel.add(comboBox);leftPanel.add(start);JPanel rightPanel = new JPanel();rightPanel.setBack

15、ground(Color.PINK);rightPanel.setBorder(new TitledBorder(“游 戏 状 态 “);rightPanel.setLayout(new GridLayout(1,2);name = new JTextField(“图 片 名 称 :小 女 孩 “);step = new JTextField(“步 数 : 0“);name.setEditable(false);step.setEditable(false);rightPanel.add(name, BorderLayout.WEST);rightPanel.add(step, BorderL

16、ayout.EAST);panel.add(leftPanel, BorderLayout.WEST);panel.add(rightPanel, BorderLayout.EAST);this.add(panel, BorderLayout.NORTH);private void init() this.setBounds(new Rectangle(150, 25, 1000, 720);this.setTitle(“拼 图 游 戏 “);this.setResizable(false);/设 置 窗 口 默 认 关 闭 操 作this.setDefaultCloseOperation(J

17、Frame.EXIT_ON_CLOSE);/PicturePreview.javapackage cn.itcast.picture.ui;import java.awt.Graphics;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JPanel;/* 图 片 预 览 类*/public class PicturePreview extends JPanel /重 写 绘 制 当 前 组 件 方 法Overrideprotected void paintComponent(Graphics g) /

18、 TODO Auto-generated method stubsuper.paintComponent(g);/制 定 图 片 文 件 路 径String filename = “picture/“+PictureCanvas.pictureID+“.jpg“;/获 取 图 片 文 件 中 的 图 像ImageIcon icon = new ImageIcon(filename);Image image = icon.getImage();/把 图 像 绘 制 在 预 览 区 中g.drawImage(image, 20, 20, 450, 600, this);/ MainApp.javapackage cn.itcast.picture.app;import cn.itcast.picture.ui.PictureMainFrame;/* 启 动 器*/public class MainApp public static void main(String args) / 创 建 主 界 面PictureMainFrame frame=new PictureMainFrame();/显 示 界 面frame.setVisible(true);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报