




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Java 程序設(shè)計與應(yīng)用開發(fā) 課程設(shè)計報告設(shè)計題目 拼圖大作戰(zhàn) 同學(xué)姓名 同學(xué)班級 同學(xué)學(xué)號 指導(dǎo)老師完成時間: 2022 年 06 月 21 日目錄一、項目說明 .2 二、設(shè)計思路與關(guān)鍵數(shù)據(jù)結(jié)構(gòu).4 三、系統(tǒng)的類和結(jié)構(gòu) .6 四、核心算法描述和相關(guān)技術(shù)說明 .8 五、總結(jié)和體會 .9 六、源代碼清單 .10 一 項目說明1、項目介紹該嬉戲是由以圖片為主體的拼圖小嬉戲,這個嬉戲是一個益智休閑的小游戲;該類似的小嬉戲在我們成長的過程中,曾經(jīng)瘋狂的流行著, 這是一個老少皆宜的小嬉戲,它開發(fā)人們的智力,加強我們的動手才能和我們的眼睛的洞悉力;該嬉戲簡潔便利易操作是一個很好的小嬉戲,也是一個經(jīng)久不衰的
2、嬉戲, 在我們這代人中, 可謂每個人都玩過這種類似的小嬉戲,簡潔易操作是其始終存在的原因之一;嬉戲由簡潔的界面組成的,操作簡潔,該圖像塊是由 12 塊小的小圖像塊構(gòu)成的,其中有一個空白的小圖像塊,該圖像塊是來與別的圖像塊交換的,以此來實現(xiàn)大圖像的拼湊;在java 標(biāo)準(zhǔn)環(huán)境下運行,實現(xiàn)通過小的圖像塊的移動實現(xiàn)大的圖像的拼湊; 通過鼠標(biāo)點擊選取小的圖像塊, 通過移動鼠標(biāo)實現(xiàn)小圖像的 移動,使小圖像塊能夠上下左右的移動從而完成大圖像的拼湊的完成;2、嬉戲展現(xiàn)與使用1.主體功能 可以從多張圖片中挑選來進(jìn)行拼圖嬉戲 通過移動鼠標(biāo)實現(xiàn)小圖像的移動,使小圖像塊能夠上下左右的移動從而完成大圖像的 拼湊的完成;
3、播放嬉戲音樂的功能 統(tǒng)計嬉戲中走的步數(shù) 嬉戲中表達(dá)友好性,加了數(shù)字提示的功能和一個原圖預(yù)覽的區(qū)域 完成后,有設(shè)置提示彈框顯示,所用的步數(shù)和恭喜2. 如何使用 如下圖:可以先挑選喜愛的圖片來進(jìn)行嬉戲,點擊喜愛的圖片后,再點擊 Start 按鈕 便可以開頭嬉戲 在嬉戲過程沖,可以使用數(shù)字提示的功能,數(shù)字提示會依據(jù) 1,2, 9 的 次序賜予提示,借此降低嬉戲難度,增加可玩性 也可以掌握嬉戲音樂的播放與否 在完成拼圖后,會提恭喜完成的信息;如再想連續(xù)嬉戲,就連續(xù)挑選喜愛的圖片,再點擊Start 按鈕連續(xù)嬉戲如不想玩嬉戲,就點擊右上角叉叉,即可退出嬉戲;3基于 Java 技術(shù),在Ecilpse下進(jìn)行編
4、譯使用,作者使用環(huán)境SUMSUNG電腦, WIN10 64位操作系統(tǒng)二、設(shè)計的思路與關(guān)鍵數(shù)據(jù)結(jié)構(gòu)1、 設(shè)計思路主要是利用了Java 中的 Swing 和 Awt 來實現(xiàn)界面上的靜態(tài)顯示和動態(tài)交互操作,播放音樂的技術(shù)使用到了Applet ,在算法的實現(xiàn)上,利用了布局上的坐標(biāo)方式,來運算每個小方格的坐標(biāo)位置,進(jìn)行小圖片交換和判定是否復(fù)原拼圖等操作; 2 、實現(xiàn)思路主要分為 五個類來實現(xiàn)總體的功能在構(gòu)思布局的過程中,想了3*4 的布局,借此可以直接在面板上放置比較多的按鈕來實現(xiàn)功能;在顯示界面的思路上,分為四個方面,主界面,圖片預(yù)覽區(qū),拼圖區(qū),小平圖單 元格;然后要有實現(xiàn)嬉戲總的一個類,啟動類;所以
5、總共五個類,利用 UML時序圖表示如 下:3、關(guān)鍵算法 在打算做這個小嬉戲的時候,翻閱了書本,書本利用了坐標(biāo)來運算每個小 方塊的關(guān)系,進(jìn)行運算;但是不完善,在這個基礎(chǔ)上,上網(wǎng)查閱了博客和一些 IT 網(wǎng)站,最終完成了算法方面的問題;第一個,打亂小拼圖,利用第一個左上角的小方塊與四周的小方塊進(jìn)行比較,如原理左上角的四塊小方格,就表示打亂勝利;其次個,如何將點擊的小方塊和空方塊來進(jìn)行交換,換即刻,在判定四個方向即刻;利用 UML時序圖表示如下:將兩個方塊坐標(biāo)進(jìn)行互三、系統(tǒng)的類和結(jié)構(gòu)類結(jié)構(gòu)與關(guān)系:啟動起類,負(fù)責(zé)調(diào)用空的構(gòu)造方法,來啟動整個嬉戲;主界面類,進(jìn)行界面的初始化操作,和添加組件;預(yù)覽圖片類,負(fù)
6、責(zé)繪制預(yù)覽區(qū),將圖片載入預(yù)覽區(qū);拼圖圖片類,關(guān)鍵類,實現(xiàn)了方格移動的算法;拼圖單元格類,關(guān)鍵類,實現(xiàn)了方格移動的算法利用 UML時序圖,陳勛結(jié)構(gòu)和練習(xí),顯示如下:2、最初完成嬉戲界面成效如圖:此時無功能,無監(jiān)聽大事3、完成監(jiān)聽和播放音樂功能后完成一句嬉戲后成效如下列圖四、核心算法描述和相關(guān)技術(shù)說明主要算法:/ 當(dāng)前方格的移動的算法publicvoid moveString direction/ 上,下,左,右switch direction case UP : this .setLocationthis .getBounds.x, this .getBounds.y - 150; break
7、; case DOWN: this .getBounds.x, this .getBounds.y + 150; this .setLocationbreak ; case LEFT : this .setLocationthis .getBounds.x - 150, this .getBounds.y; break ; case RIGHT : this .setLocationthis .getBounds.x + 150, this .getBounds.y; break ; default :/ 其他情形,不做移動處理 break ; / 隨機產(chǎn)生一個方向,進(jìn)行空方格與小方法的互換
8、/ 產(chǎn)生 0-3 之間的隨機數(shù),對應(yīng)空方格的上下左右移動 int direction = int Math. random *4; /0,1,2,3 switch direction case 0:/ 空方格向左移動,與左邊的方格進(jìn)行互換位置,左側(cè)方格要向右移動 /nullX = nullX - 150; nullX -= 150; cellMove nullX , nullY , RIGHT ; break ; case 1:/ 空方格向右移動,與右邊的方格進(jìn)行互換位置,右側(cè)方格要向左移動 nullX += 150; cellMove nullX , nullY , LEFT ; break
9、 ; case 2:/ 空方格向上移動,與上邊的方格進(jìn)行互換位置,上側(cè)方格要向下移動 nullY -= 150; cellMovenullX , nullY , DOWN; break ; case 3:/ 空方格向下移動,與下邊的方格進(jìn)行互換位置,下側(cè)方格要向上移動 nullY += 150; cellMove nullX , nullY , UP ; break ; 五、總結(jié)和體會1、優(yōu)缺點與自我評判(一)、這個嬉戲真的太過簡潔,嬉戲功能單一,日后要完善,學(xué)新的學(xué)問(二)、沒和他人進(jìn)行問題和學(xué)問上的學(xué)習(xí)溝通(三)、自己沒有充分利用好時間,課程設(shè)計匆忙完成(四)、圖形交互界面不扎實,做的時候
10、要看書,試來試去;算法方面,這次寫 的兩個算法相對簡潔,但也耗費了大量腦力,以后要多摸索,學(xué)習(xí)算法; 五 、這幾天的精力都在做這個嬉戲中,破天荒給每行代碼寫好注釋,以后要繼 續(xù)保持2、課設(shè)與課程總結(jié)在沒上 java 這門課之前,我就知道java 的強大,在我們生活中的重要性;在學(xué)期開頭的時候, 那時我已經(jīng)接觸了Java,后來由于對前端方向感愛好,所以就沒怎么關(guān)懷過 Java,后臺用的 PHP多;有空的時候放開書本, 發(fā)覺這本書講了好多“ 復(fù)古”的內(nèi)容, 在日常中, 我并不多見到這些學(xué)問; 在一次次地上網(wǎng)查詢,明白相關(guān)的學(xué)問,從這些經(jīng)受中,我打心底里對java 有了新的明白,新的熟悉,從而對 j
11、ava 產(chǎn)生了深厚的愛好以及奇怪心,發(fā)覺我之前太輕視這門課了;此時 Java 課堂教學(xué)雖已經(jīng)停止,但是我私下,今后會連續(xù)學(xué)期這門語言,仔細(xì)對待,嘗試自己在這個暑假就利用Java 做后臺;這個小嬉戲挺簡潔的,三天的時間,沒有請教別人,自己漸漸的就搗鼓出來了;我知道團(tuán)結(jié)的重要性,團(tuán)隊的力氣;以后做這方面的東西,開發(fā),仍是要多和他人爭論學(xué)習(xí);對于 XX老師,很感謝您的教學(xué)付出, 您在我心中是一個很負(fù)責(zé)任的老師,認(rèn)真莊重的同時仍能這么關(guān)懷同學(xué),貼近同學(xué),真的打心底里佩服;六、源代碼清單package gamestart; import gameui.PictureMainFrame; /* 啟動器類*
12、/public class MainApp public static void mainString args / 創(chuàng)建主界面PictureMainFrame frame = new PictureMainFrame; / 顯示界面frame .setVisible true ; /* * 圖片小方格類 */ package gameui; import javax.swing.Icon; import javax.swing.JButton; /* * 圖片小方格類 */ public class Cell extends JButton / 帶有圖片的小方格 public CellIco
13、n icon supericon; / 設(shè)置小方格大小 this.setSize150, 150; / 帶有圖片并且?guī)в形淖值男》礁?public CellString text, Icon icon supertext, icon; / 設(shè)置小方格大小 this.setSize150, 150; this.setHorizontalTextPositionCENTER;/ 文字水平居中顯示 this.setVerticalTextPositionCENTER;/ 文字垂直居中顯示 / 當(dāng)前方格的移動 public void moveString direction/ 上,下,左,右 swit
14、ch direction case UP: this.setLocationthis.getBounds.x, this.getBounds.y - 150; break; case DOWN: this.setLocationthis.getBounds.x, this.getBounds.y + 150; break; case LEFT: this.setLocationthis.getBounds.x - 150, this.getBounds.y; break; case RIGHT: this.setLocationthis.getBounds.x + 150, this.getB
15、ounds.y; break; default:/ 其他情形,不做移動處理 break; /* * 拼圖類 */ package gameui; import java.awt.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 e
16、xtends JPanel implements MouseListener / 靜態(tài)變量 public static int pictureID = 1; / 圖片 ID public static int stepNum = 0; / 步數(shù) / 成員變量 private Cell cell;/ 小方格private boolean hasAddActionListener = false; / 值為 true, 未添加值為 false 用來表示是否為方格添加了點擊監(jiān)聽,添加了private Rectangle nullCell;/ 指定一個空的小方格 / 構(gòu)造方法 public Pictu
17、reCanvas / 設(shè)置拼圖區(qū)的布局 this.setLayoutnull;/ 幀布局 / 創(chuàng)建 12個圖片小方格,添加到拼圖區(qū) cell = new Cell12; for int i = 0; i 4; i+ / 代表的是行數(shù)for int j = 0; j 3; j+ / 代表的是列數(shù) / 加載圖片 /ImageIcon icon = new ImageIconpicture1_1.gif; /i=0,1 /j=0,1,2 /0*3+0+1 = 1 /0*3+1+1 = 2 /0*3+2+1 = 3 /1*3+0+1 = 4 /1*3+1+1 = 5 ImageIcon icon =
18、new ImageIconpicture1_+i*3+j+1+.gif; / 創(chuàng)建圖片小方格 celli*3+j = new Cellicon; / 指定圖片小方格顯示的位置 celli*3+j.setLocationj*150+20, i*150+20; / 把圖片小方格添加到拼圖區(qū)顯示 this.addcelli*3+j; / 刪除第 12個圖片小方格 this.removecell11; / 指定一個空的小方格 nullCell = new Rectangle300+20, 450+20, 150, 150; / 重新加載圖片,并添加數(shù)字提示 public void reLoadPict
19、ureAddNumber / 獵取到每一個圖片小方格for int i = 0; i 4; i+ /行數(shù)列數(shù)for int j = 0; j 3; j+ / 獵取小方格 celli*3+j / 設(shè)置小方格顯示的圖片 ImageIcon icon = new ImageIconpicture+pictureID+_+i*3+j+1+.gif; celli*3+j.setIconicon; / 設(shè)置小方格顯示的數(shù)字提示 celli*3+j.setText + i*3+j+1; / 設(shè)置小方格數(shù)字顯示的位置 居中顯示 celli*3+j.setVerticalTextPositionthis.get
20、Y/2;/ 設(shè)置文字垂直顯示位置celli*3+j.setHorizontalTextPositionthis.getX/2;/ 設(shè)置文字水平顯示位置 居中顯示 / 重新加載圖片,并去除數(shù)字提示 public void reLoadPictureClearNumber / 獵取到每一個圖片小方格for int i = 0; i 4; i+ /行數(shù)列數(shù)for int j = 0; j 3; j+ / 獵取小方格 celli*3+j / 設(shè)置小方格顯示的圖片 ImageIcon icon = new ImageIconpicture+pictureID+_+i*3+j+1+.gif; celli*
21、3+j.setIconicon; / 設(shè)置小方格顯示的數(shù)字提示 celli*3+j.setText; / 對小方格進(jìn)行重新位置排序,打亂次序 public void start / 假如沒有給小方格添加鼠標(biāo)點擊監(jiān)聽的話,就添加監(jiān)聽 if .hasAddActionListener / 添加監(jiān)聽 for int i = 0; i 11; i+ celli.addMouseListenerthis; / 更新鼠標(biāo)點擊監(jiān)聽的狀態(tài) hasAddActionListener = true; / 判定當(dāng)前第一個小方格距離左上交的較近時,進(jìn)行方格與空方格互換 / 假如第一個小方格在左上角的四個方格位置內(nèi),就
22、不斷的循環(huán),進(jìn)行方法與空方格位置的互換 whilecell0.getBounds.x =170 & cell0.getBounds.y =170 / 獵取到空方格的位置 int nullX = nullCell.getBounds.x; int nullY = nullCell.getBounds.y; / 隨機產(chǎn)生一個方向,進(jìn)行空方格與小方法的互換 / 產(chǎn)生 0-3 之間的隨機數(shù),對應(yīng)空方格的上下左右移動 int direction = intMath.random*4;/0,1,2,3 switch direction case 0:/ 空方格向左移動,與左邊的方格進(jìn)行互換位置,左側(cè)方格要
23、向右移動/nullX = nullX - 150; nullX -= 150; cellMovenullX, nullY, RIGHT; break; case 1:/ 空方格向右移動,與右邊的方格進(jìn)行互換位置,右側(cè)方格要向左移動 nullX += 150; cellMovenullX, nullY, LEFT; break; case 2:/ 空方格向上移動,與上邊的方格進(jìn)行互換位置,上側(cè)方格要向下移動 nullY -= 150; cellMovenullX, nullY, DOWN; break; case 3:/ 空方格向下移動,與下邊的方格進(jìn)行互換位置,下側(cè)方格要向上移動 nullY
24、+= 150; cellMovenullX, nullY, UP; break; /* * 方格與空方格位置互換 * param nullX 空方格的 x軸坐標(biāo) * param nullY 空方格的 y軸坐標(biāo) * param direction 方格要移動的方向 */ private void cellMoveint nullX, int nullY, String direction for int i = 0; i 11; i+ / 獵取到與空方格位置相同的小方格 if celli.getBounds.x = nullX & celli.getBounds.y = nullY / 當(dāng)前方格
25、的移動 celli.movedirection; / 空方格的移動 nullCell.setLocationnullX, nullY; / 交換位置后,終止循環(huán) break; Override public void mouseClickedMouseEvent e Override public void mousePressedMouseEvent e / 鼠標(biāo)按下去 / 獵取到當(dāng)前所點擊的小方格 Cell button = Celle.getSource; / 獵取所點擊方格的 x,y坐標(biāo) int clickX = button.getBounds.x; int clickY = but
26、ton.getBounds.y; / 獵取當(dāng)前空方格的 x,y坐標(biāo) int nullX = nullCell.getBounds.x; int nullY = nullCell.getBounds.y; / 進(jìn)行比較,假如滿意條件進(jìn)行位置的交換 if clickX = nullX & clickY - nullY = 150 / 點擊的為空方格下面的方格 button.moveUP;/ 所點擊的方格 向上移動 else if clickX = nullX & clickY - nullY = -150 / 點擊的為空方格上面的方格 button.moveDOWN;/ 所點擊的方格 向下移動 e
27、lse ifclickX - nullX = 150 & clickY = nullY/ 點擊的為空方格右面的方格 button.moveLEFT;/ 所點擊的方格 向左移動 else ifclickX - nullX = -150 & clickY = nullY/ 點擊的為空方格左面的方格 button.moveRIGHT;/ 所點擊的方格 向右移動 else return ;/ 不滿意移動條件,就不進(jìn)行任何的處理 / 更新空方格的位置 nullCell.setLocationclickX, clickY; / 拼圖區(qū)界面重新繪制 this.repaint; / 更新步數(shù),將嬉戲狀態(tài)區(qū)的步
28、數(shù)更新 stepNum+; PictureMainFrame.step.setText 步數(shù): +stepNum; / 判定當(dāng)前嬉戲是否完成,如完成,給玩家一個友好提示 if this.isFinish / 彈出窗口提示JOptionPane.showMessageDialogthis, 恭喜你完成拼圖, 加油! n 所用步 :+stepNum; / 撤銷每一個小方格上的鼠標(biāo)點擊監(jiān)聽 for int i = 0; i 11; i+ , 讓鼠標(biāo)點擊小方格步再起作用了celli.removeMouseListenerthis; / 更新方格的動作監(jiān)聽器的狀態(tài) hasAddActionListene
29、r = false; / 判定當(dāng)前嬉戲是否完成 , 依據(jù)坐標(biāo)判定是否拼圖勝利 private boolean isFinish for int i = 0; i 11; i+ / 獵取每一個方格的位置 int x = celli.getBounds.x; int y = celli.getBounds.y; if y-20/150*3 + x-20/150 .= i /i=0, 20-20/150*3 + 20-20/150 = 0 /i=1, 20-20/150*3 + 170-20/150 = 1 /. /i=5, 170-20/150*3 + 320-20/150= 5 return f
30、alse; return true; Override public void mouseReleasedMouseEvent e Override public void mouseEnteredMouseEvent e Override public void mouseExitedMouseEvent e /* 主界面類*/package gameui; import java.applet.Applet; import java.applet.AudioClip; import java.awt.BorderLayout; import java.awt.Color; import j
31、ava.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing
32、.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; import javax.swing.border.TitledBorder; /* 主界面類*/public class PictureMainFrame extends JFrame private String items = 小萌妹 , 愛心 ,Baby ,橙汁 C ,歡樂節(jié)日 ,數(shù)字模式 ; private JRadioButton
33、addNumInfo ; / 數(shù)字提示private JRadioButton clearNumInfo ; / 清除提示private PictureCanvas canvas ; / 拼圖區(qū)private PicturePreview preview ; / 預(yù)覽區(qū)private JComboBox box ; / 下拉框private JTextField name ; / 圖片名稱public static JTextField step ; / 步數(shù)private JButton start ;/ 開頭按鈕/ private JButton startmusic;private JB
34、utton stopmusic ; private JButton loopmusic ; / 空參數(shù)構(gòu)造方法public PictureMainFrame /super;init; / 界面初始化操作addComponent; / 添加組件addPreviewImage; / 添加預(yù)覽圖片與拼圖圖片addActionListener; / 為組件添加大事監(jiān)聽loadMusic; startMusic; / 為組件添加大事監(jiān)聽private void addActionListener / 數(shù)字提示addNumInfo.addActionListenernew ActionListener /
35、 點擊時激活下面的方法Overridepublicvoid actionPerformedActionEvent e / 完成數(shù)字提示的顯示canvas .reLoadPictureAddNumber; ; / 清除提示clearNumInfo.addActionListenernew ActionListener Overridepublicvoid actionPerformedActionEvent e / 完成數(shù)字提示的清除canvas .reLoadPictureClearNumber; ; / 下拉框box .addItemListener new ItemListener Ove
36、rridepublicvoid itemStateChangedItemEvent e / 獵取到挑選的圖片的序號int num = box .getSelectedIndex; / 默認(rèn)從 0開頭/ 更新當(dāng)前圖片 IDPictureCanvas. pictureID = num +1; / 更新預(yù)覽區(qū)preview .repaint; / 重新繪制預(yù)覽區(qū)界面/ 更新拼圖區(qū)canvas .reLoadPictureClearNumber; / 更新嬉戲狀態(tài)區(qū)name .setText 名稱: + box .getSelectedItem; / 設(shè)置圖片名稱int stepNum = Pictu
37、reCanvas. stepNum = 0; / 嬉戲步數(shù)清零step.setText 步數(shù): + stepNum ;/ 設(shè)置步數(shù)顯示/ 按鈕區(qū)/ 把按鈕設(shè)置成 清除提示按鈕選中狀態(tài)clearNumInfo .setSelected true ; ; / 開頭按鈕start .addActionListener new ActionListener Overridepublicvoid actionPerformedActionEvent e / 已移動的步數(shù)清零PictureCanvas. stepNum = 0; / 嬉戲狀體區(qū) 進(jìn)行步數(shù)顯示更新step.setText 步數(shù): + Pic
38、tureCanvas. stepNum ; / 對小方格進(jìn)行重新位置排序,打亂次序canvas .start; ; / startmusic.addActionListenernew ActionListener / Override/ public void actionPerformedActionEvent arg0 / / TODO Auto-generated method stub/ startmusic.setEnabledfalse;/ loopmusic.setEnabledtrue;/ stopmusic.setEnabledtrue;/ / ;loopmusic .add
39、ActionListener new ActionListener Overridepublicvoid actionPerformedActionEvent e loopMusic; loopmusic .setEnabled false ; / startmusic.setEnabledtrue;stopmusic .setEnabled true ; ; stopmusic.addActionListenernew ActionListener Overridepublicvoid actionPerformedActionEvent e stopMusic; stopmusic .se
40、tEnabled false ; / startmusic.setEnabledtrue;loopmusic .setEnabled true ; ; /=/ 添加預(yù)覽圖片與拼圖圖片private void addPreviewImage / 創(chuàng)建一個面板,包含拼圖區(qū)與 預(yù)覽區(qū)JPanel panel = new JPanel; panel .setLayoutnew GridLayout1, 2;/ 設(shè)置布局為表格布局/-/ 拼圖區(qū)canvas = new PictureCanvas; canvas .setBordernew TitledBorder拼圖區(qū) ;/ 添加邊框/ 圖片預(yù)覽區(qū)pr
41、eview = new PicturePreview; preview .setBorder new TitledBorder 預(yù)覽區(qū) ;/ 添加邊框/ 把拼圖區(qū) 與 圖片預(yù)覽區(qū) 添加到中間的面板中panel .add canvas , BorderLayout. WEST;/ 左邊panel .add preview , BorderLayout. EAST;/ 右邊/-/ 把面板顯示在主界面中this .add panel , BorderLayout. CENTER;/ 居中顯示 / 添加組件privatevoid addComponent 在面板中要包含按鈕區(qū)與嬉戲狀態(tài)區(qū)/ 創(chuàng)建用來在
42、主界面上方顯示的面板,JPanel panel = new JPanel; panel .setLayout new GridLayout1, 2; / 創(chuàng)建左邊按鈕區(qū)面板JPanel leftPanel = new JPanel; leftPanel .setBorder new TitledBorder 按鈕區(qū) ;/ 添加邊框leftPanel .setBackgroundColor. PINK ;/ 設(shè)置背景色/ 添加單項按鈕addNumInfo = new JRadioButton 數(shù)字提示 ,false ; clearNumInfo = new JRadioButton清除提示 ,t
43、rue ; / 添加按鈕組ButtonGroup buttonGroup = new ButtonGroup; / 添加下拉框box = new JComboBox items ; / 添加開頭按鈕start = new JButton Start ; / 添加單項按鈕到按鈕組中buttonGroup.add addNumInfo; buttonGroup.add clearNumInfo; / 設(shè)置背景色addNumInfo .setBackgroundColor. PINK ; clearNumInfo .setBackgroundColor. PINK ; start .setBackg
44、roundColor. PINK ; / 添加組件到面板中l(wèi)eftPanel .add addNumInfo ; leftPanel .add clearNumInfo ; leftPanel .add new JLabel 挑選圖片: ; leftPanel .add box ; leftPanel .add start ; panel .add leftPanel , BorderLayout. WEST;/ 左邊/-/ 創(chuàng)建右邊嬉戲狀體區(qū)面板JPanel rightPanel = new JPanel; rightPanel .setBorder new TitledBorder 嬉戲狀
45、態(tài) ;/ 添加邊框rightPanel .setBackgroundColor. PINK ;/ 設(shè)置背景色rightPanel .setLayout new GridLayout1, 2; / 設(shè)置布局為表格布局/ 添加組件 圖片名稱name = new JTextField 圖片名稱:小女孩兒 ; / 添加組件 步數(shù)step = new JTextField 步數(shù): 0 ; / 設(shè)置文本框不能編輯name .setEditable false ; step .setEditable false ; / 添加組件 播放音樂/ startmusic=new JButton 播放音樂 ;/ 添加
46、組件 停止播放stopmusic = new JButton 停止播放 ; /l 添加組件 循環(huán)播放loopmusic = new JButton 重播音樂 ; / 把組件添加到嬉戲狀態(tài)面板中rightPanel .add name , BorderLayout. WEST;/ 左邊rightPanel .add step , BorderLayout. EAST;/ 右邊/ rightPanel.addstartmusic, BorderLayout.CENTER;rightPanel .add stopmusic , BorderLayout. EAST; rightPanel .add loopmusic , BorderLayout. EAST; panel .add rightPanel , BorderLayout. EAST;/ 右邊/-/ 設(shè)置 panel 在主界面的上方顯示this .add panel , BorderLayout. NORTH ;/ 上面 /= 音樂=/ TODO Auto-generated method stubString bgMusicName= 182.wav ; ; AudioClip bgMusicClipOnce,bgMusicClipLoopboole
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范本合資
- 醫(yī)院線路驗收合同范本
- app商城合作合同范本
- 南門小學(xué)租房合同范本
- 架子班組勞務(wù)分包合同范本
- 合作建設(shè)開發(fā)合同范本
- 口罩機居間合同范本
- 農(nóng)村自建車庫合同范本
- 豐臺區(qū)供暖安裝合同范本
- 卡車賣買合同范本
- 基礎(chǔ)模塊2Unit 8 Green Earth reading課件
- 某發(fā)電公司安全風(fēng)險辨識分級管控與隱患排查治理匯編
- 啟封密閉、排放瓦斯專項辨識
- 盤扣式鋼管腳手架驗收表
- EPC項目設(shè)計管理實施策劃書
- von frey絲K值表完整版
- 人教版四年級數(shù)學(xué)下冊第一單元提升測試卷(Word版含答案)
- 內(nèi)部審核檢查表人力資源部
- GB/T 3452.4-2020液壓氣動用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- GA/T 1310-2016法庭科學(xué)筆跡鑒定意見規(guī)范
- 西南交通大學(xué)文科建設(shè)發(fā)展綱要
評論
0/150
提交評論