資源簡介
使用java程序編寫的拼圖程序
二、課程設計內容
1、設計題目:編寫拼圖游戲程序
2、拼圖游戲具用功能:
所謂拼圖游戲,是指將一個完整的圖片分割成若干個規則的小圖片,然后將這些小圖片隨機地拼在一起,然后由玩家按照原圖重新拼接出正確的圖片。
三、設計思路
通過單擊與空白網格相鄰的網格,可以將該網格顯示的圖片移動到空白網格中,那么可以用一個按鈕代表一個網格,然后讓每個按鈕顯示一個小圖片,最后將這些按鈕添加到一個面板中,并讓這個面板采用網格布局。
需要解決的問題:
(1)如何實現圖片移動
(2)如何判斷被單擊的網格與空白的網格是否相鄰
(3)如何實現圖片的隨機擺放
代碼片段和文件信息
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;?
//以上均引用不同的package內的類
public?class?MyMainframe?extends?Jframe?implements?ActionListener?{//MyMainframe類extends?“Jframe”類實現?ActionListener的方法
MyCanvas?myCanvas;?//初始化對象MyCanvas類
JPanel?panelNorthpanelPreview;//定義上方的面板,及預覽所需的面板?
Button?startpreviewset;//定義開始,預覽,設定按鈕?
Container?container;//容器,得到內容面板?
public?MyMainframe()?{//初使化?
container=this.getContentPane();?//得到當前對象的ContentPane,并且把它賦給container
start=new?Button(“開始“);//創建并初始新的Button(按鈕)對象,賦給start?
start.addActionListener(this);?//在這個按鈕對象中添加監聽器,范圍是當前對象
preview=new?Button(“預覽“);//同上,創建新的Button對象。。。。。?
preview.addActionListener(this);//同上。。。。。?
set?=?new?Button(“設置“);?//同上。。。。。(感覺代碼都差不多吧?呵呵)
set.addActionListener(this);//同上?
panelPreview=new?JPanel();?創建新的JPanel(面板)對象
panelPreview.setLayout(null);?//設置面板對象的布局為空
Icon?icon=new?ImageIcon(“pic/pic_“+MyCanvas.pictureID+“.jpg“);?//創建并初始新的圖標對象。圖標的圖片路徑是pic目錄下的pic與通過MyCanvas.pictureId取得字符串再與.jpg合并后的名稱。例如(pic/pic_1234.jsp)
JLabel?label=new?JLabel(icon);?//定義新的JLable(java標簽),并初始
label.setBounds(00300300);?//設置標簽的范圍(長x軸寬y軸,長多,寬多少)
panelPreview.add(label);?//面板對象中添加label這個對象
panelNorth=new?JPanel();?//定義新的JPanel
panelNorth.setBackground(Color.red);?//設置JPanel的背景色
panelNorth.add(start);?//Jpanel加入按鈕
panelNorth.add(preview);?//同上
panelNorth.add(set);?//同上
myCanvas=new?MyCanvas();?//實例化MyCanvas
container.add(myCanvasBorderLayout.CENTER);//在容器(前邊定義好了這個對象)中添加myCanvas,設置它的布局為居中?
container.add(panelNorthBorderLayout.NORTH);//添加Jpanel,布局為北(也就是上)?
this.settitle(“拼圖小游戲-“);?//設置這個對象的題目叫。。。。。
this.setLocation(300200);?//
- 上一篇:android上傳文件.rar
- 下一篇:開發者選項ROOT設置
評論
共有 條評論