版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
徹南甫孝洗處律者院
課程設(shè)計(jì)報(bào)告實(shí)驗(yàn)內(nèi)容: 綜合課程設(shè)計(jì) 相關(guān)課程: Java程序設(shè)計(jì) 學(xué)期:2011-2012學(xué)年第2學(xué)期學(xué)時(shí)學(xué)分: 68學(xué)時(shí)4學(xué)分 專業(yè)班級(jí): 信科1021班 學(xué)號(hào): xxxxxxxxxx姓名: XXX 指導(dǎo)老師: 羅毅輝 提交日期: 2012年6月21日java程序設(shè)計(jì)課程設(shè)計(jì)一、 實(shí)驗(yàn)?zāi)康拇舜螌?shí)驗(yàn)的目的:一是鞏固并運(yùn)用所學(xué)的專業(yè)知識(shí)解決實(shí)際遇到的問(wèn)題。二是提高綜合素質(zhì)和能力。課程設(shè)計(jì)主要是針對(duì)Java語(yǔ)言程序設(shè)計(jì)的實(shí)現(xiàn)。通過(guò)該課程設(shè)計(jì),可以將我們?cè)谡n堂上掌握的理論知識(shí)與處理數(shù)據(jù)的業(yè)務(wù)相結(jié)合,以檢驗(yàn)我們掌握知識(shí)的寬度、深度及對(duì)知識(shí)的綜合運(yùn)用能力。二、 實(shí)驗(yàn)環(huán)境電腦型號(hào):戴爾Dell筆記本電腦操作系統(tǒng):Windows?家庭普通版(64位)處理器:Intel(R)Core(TM)i3-2330MCPU@2.2GHz2.20GHz雙核處理器內(nèi)存:2GB軟件:Eclipse7.1、JSDK1.6三、 實(shí)驗(yàn)內(nèi)容內(nèi)容一:設(shè)計(jì)一個(gè)計(jì)算器,利用它可以進(jìn)行簡(jiǎn)單的四則運(yùn)算(加、減、乘、除、開(kāi)方)等,但僅限于十進(jìn)制下,此外還可以進(jìn)行(八進(jìn)制,十進(jìn)制,十六進(jìn)制)之間的相互轉(zhuǎn)換。要求:有簡(jiǎn)單的需求分析,功能設(shè)計(jì),詳細(xì)設(shè)計(jì)(程序流程),異常處理,測(cè)試,源程序清單,總結(jié),具體格式見(jiàn)附件。(必做)知識(shí)點(diǎn):掌握?qǐng)D形用戶界面設(shè)計(jì);掌握基本類的設(shè)計(jì)與使用;掌握事件處理機(jī)制;掌握使用異常處理方法;內(nèi)容二:利用JAVA的輸入輸出流,打開(kāi)文件iris.txt,求出該文件每列的總和及平均值。(注意觀察iris.txt文件的分割符)(必做)知識(shí)點(diǎn):掌握使用JAVA的輸入輸出流掌握使用String類以及和基本數(shù)據(jù)類型的轉(zhuǎn)換。內(nèi)容三:“湖南經(jīng)視臺(tái)猜“黃金卡”節(jié)目簡(jiǎn)介如下:有三張卡,其中兩張銀卡,一張黃金卡,放在把背面提供給競(jìng)猜者來(lái)猜,本節(jié)目存在三種選擇方法。方法一:在競(jìng)猜者隨機(jī)三選一后,不再改變選擇的結(jié)果;方法二:在競(jìng)猜者隨機(jī)三選一后,主持人再翻開(kāi)剩下兩張中沒(méi)有被選中的一張銀卡,競(jìng)猜者再重新在剩下的兩張卡中隨機(jī)選擇。方法三:在競(jìng)猜者隨機(jī)三選一后,主持人再翻開(kāi)剩下兩張中沒(méi)有被選中的一張銀卡,競(jìng)猜者改變?cè)瓉?lái)的選擇,選取剩下的唯一那張沒(méi)有翻開(kāi)的卡。要求:(1) 請(qǐng)用圖形用戶界面設(shè)計(jì)方法一的競(jìng)猜過(guò)程,(2) 利用蒙特卡洛仿真方法比較湖南經(jīng)視臺(tái)猜“黃金卡”節(jié)目三種不同方法的優(yōu)劣。(必做)知識(shí)點(diǎn).掌握事件處理機(jī)制;掌握隨機(jī)采樣的方法;掌握?qǐng)D形用戶界面設(shè)計(jì);(注:采用圖形用戶方式設(shè)計(jì))內(nèi)容四:編寫(xiě)tic-tac-toe游戲程序。即3*3的9個(gè)方格子,每人下一次看誰(shuí)先連成一行3個(gè)。(可選)知識(shí)點(diǎn):掌握?qǐng)D形用戶界面設(shè)計(jì);掌握基本類的設(shè)計(jì)與菜單設(shè)計(jì);掌握事件處理機(jī)制;參考教材中圍棋游戲的例子;內(nèi)容五:設(shè)計(jì)一個(gè)記事本,菜單中要求有文件,編輯,和幫助。文件中有新建、打開(kāi)、保存和退出;編輯中有剪切、復(fù)制和粘貼;幫助中顯示開(kāi)發(fā)人和版本信息。(可選)知識(shí)點(diǎn):掌握?qǐng)D形用戶界面設(shè)計(jì);掌握基本類的設(shè)計(jì)與菜單設(shè)計(jì);掌握事件處理機(jī)制;掌握使用異常處理方法。四、算法分析、設(shè)計(jì)與描述算法分析和設(shè)計(jì)內(nèi)容一:我所做的計(jì)算器程序,第一步是完成計(jì)算器界面的設(shè)計(jì)。先創(chuàng)建一個(gè)Jsuanqi窗口,其次創(chuàng)建一系列的按鈕、面板、選擇框以及標(biāo)簽等組件,將按鈕加到面板上,再將面板以GridLayout布局方式加到Jsuanqi窗口上,選擇框(3個(gè))添加到窗口上標(biāo)簽直接添加到窗口上。第二步是對(duì)所有組件添加動(dòng)作監(jiān)視器即調(diào)用addActionListener()方法(以窗口對(duì)組件進(jìn)行監(jiān)聽(tīng)),窗口實(shí)現(xiàn)了ItemListener、ActionListener接口,并且所有添加監(jiān)視器的組件均實(shí)現(xiàn)了對(duì)應(yīng)的方法(itemStateChanged、actionPerformed)。第三步是當(dāng)發(fā)生事件的時(shí)候?qū)崿F(xiàn)數(shù)值的計(jì)算和進(jìn)制轉(zhuǎn)換動(dòng)能。這里我只介紹數(shù)值計(jì)算:源代碼如下:(1)實(shí)現(xiàn)加減乘除publicvoidjs()throwsThis_number_too_big//指定由method拋出異常{if(mark=='n')//沒(méi)有運(yùn)算符{mark=ch;//,則設(shè)置運(yùn)算符為剛剛輸入的字符,data=Double.parseDouble(lab.getText());//將標(biāo)簽里的字符轉(zhuǎn)型為雙精度數(shù)值并傳給data變量Refresh=true;//則設(shè)置下一次輸入的時(shí)候要刷新lab}else//如果采用的是連續(xù)運(yùn)算(即沒(méi)有使用‘=’號(hào))則運(yùn)行下面的語(yǔ)句{switch(mark)//根據(jù)運(yùn)算符計(jì)算結(jié)果,并把結(jié)果保存到data{case'+':data+=Double.parseDouble(lab.getText());break;case'-':data-=Double.parseDouble(lab.getText());break;case '*': data*=Double.parseDouble(lab.getText());break;case '/': data/=Double.parseDouble(lab.getText());break;}lab.setText(Double.toString(data));這里通過(guò)獲得標(biāo)簽里的字符將其轉(zhuǎn)型為單精度數(shù)值傳值給 data,通過(guò)switch語(yǔ)句,對(duì)輸入的運(yùn)算符的情況依次做對(duì)應(yīng)的運(yùn)算處理。再調(diào)用lab.setText(Double.toString(data)在標(biāo)簽以雙精度整型輸出計(jì)算結(jié)果。(2)實(shí)現(xiàn)開(kāi)方運(yùn)算if(m.getSource()==bts){data=Double.parseDouble(lab.getText());//將標(biāo)簽里的字符轉(zhuǎn)型為雙精度數(shù)值并傳給data變量doubles=Math.sqrt(data);lab.setText(Double.toString(s));}這里通過(guò)對(duì)按鈕sbts的事件監(jiān)聽(tīng),調(diào)用Math.sqrt(data)方法實(shí)現(xiàn)了開(kāi)方運(yùn)算。整個(gè)內(nèi)容一的算法分析設(shè)計(jì)基本完成。內(nèi)容二此程序主要是實(shí)現(xiàn)對(duì)輸入的數(shù)字字符串進(jìn)行統(tǒng)計(jì)(列的均值與和)。在算法設(shè)計(jì)上,運(yùn)用java程序輸入輸出流,以及調(diào)用Stringtokennizer類來(lái)實(shí)現(xiàn)分詞并按水平制表方式讀取文本內(nèi)容,調(diào)用BufferedReader類中的readLine()方法讀取文本行,這樣就方便對(duì)文本行的統(tǒng)計(jì)(注:文本行與列等長(zhǎng))。其次用兩個(gè)數(shù)組分別存放列的均值和列的和。在統(tǒng)計(jì)輸入的字符串時(shí),可以定義相應(yīng)的統(tǒng)計(jì)計(jì)數(shù)變量,對(duì)輸入的字符串按每一個(gè)字符截取進(jìn)行判斷。在判定時(shí),若符合條件則在相應(yīng)的統(tǒng)計(jì)數(shù)上加1,若不符則直接跳至下一個(gè)判斷模塊。整個(gè)程序就實(shí)現(xiàn)了對(duì)文本內(nèi)容的行列統(tǒng)計(jì)功能。內(nèi)容三:對(duì)于黃金卡競(jìng)猜游戲第一步:實(shí)現(xiàn)圖形窗口的界面設(shè)計(jì)思路如下:首先創(chuàng)建一系列的組件包括按鈕(六個(gè)按鈕),標(biāo)簽(主要標(biāo)注的是方法,獲勝概率,請(qǐng)輸入測(cè)試次數(shù),請(qǐng)選擇卡片,以及每一次競(jìng)猜后請(qǐng)選擇卡片標(biāo)簽顯示對(duì)應(yīng)的竟猜結(jié)果)、文本框(用來(lái)返回對(duì)應(yīng)方法下測(cè)試的次數(shù)和測(cè)試的概率值,以及輸入總的測(cè)試次數(shù)),然后將這些組件調(diào)用add.setBounds()方法按順序依次添加到窗口上(這里我對(duì)所有的組件進(jìn)行了個(gè)性化設(shè)計(jì),包括背景顏色,事件處理等使得游戲界面繽紛多彩)第二步:對(duì)添加的組件(六個(gè)按鈕,以及一個(gè)輸入總的次數(shù)的文本框)添加監(jiān)視器(以窗口作為監(jiān)聽(tīng))窗口實(shí)現(xiàn)了ActionListener接口,添加監(jiān)視器的組件實(shí)現(xiàn)了actionPerformed的方法。第三步:實(shí)現(xiàn)三個(gè)方法方占測(cè)試總數(shù)的次數(shù)以及各方法對(duì)應(yīng)概率的計(jì)算。第四步:實(shí)現(xiàn)黃金了卡競(jìng)猜游戲的功能??紤]到競(jìng)猜過(guò)程的三個(gè)方法算法設(shè)計(jì)方案如下:方案一:調(diào)用Math.random()方法產(chǎn)生隨機(jī)數(shù),并判斷兩次產(chǎn)生的隨機(jī)數(shù)是否相等,若相等則猜中,若不等即沒(méi)有猜中。并根據(jù)輸入的測(cè)試次數(shù)算出在不同方法下測(cè)試的次數(shù)和對(duì)應(yīng)的概率。方案二:黃金卡競(jìng)猜游戲需要三張卡片,即兩張銀卡和一張金卡,可以用數(shù)組存儲(chǔ)三個(gè)數(shù)來(lái)代表三張卡片:int[]cards={0,0,1}(用數(shù)組存放三張卡片0代表銀卡,1為金卡。)然后產(chǎn)生一個(gè)作為金卡的隨機(jī)數(shù),再產(chǎn)生一個(gè)作為第一次猜測(cè)的隨機(jī)數(shù),并不與金卡數(shù)比較,接著產(chǎn)生不等于前兩次隨機(jī)數(shù)的銀卡數(shù),最后產(chǎn)生不等于第三次產(chǎn)生的銀卡數(shù),若該次的隨機(jī)數(shù)與金卡相等,則猜中,否則沒(méi)猜中。這里我只拿方法一中對(duì)卡片一猜測(cè)的代碼進(jìn)行分析,其余卡片依次類推,源代碼如下:if(e.getSource()==jButton_1&&flag==0){intrandom1_1=(int)(Math.random()*3);intrandom2_1=(int)(Math.random()*2);intrandom3_1=(int)(Math.random()*2);random1=random11;random2=random2_1;random3=random3_1;intnotice=JOptionPane.showConfirmDialog(this,”需要排除一張銀卡嗎?","提示!",JOptionPane.YES_NO_CANCEL_OPTION);//是:否:撤銷:if(notice==0){if(random2==0){jButton_2.setBackground(Color.lightGray);}if(random2==1){jButton_3.setBackground(Color.lightGray);}flag=1;return;}if(notice==1){intrandom0=(int)(Math.random()*3);if(random1==0){jButton_1.setBackground(Color.yellow);jButton_2.setBackground(Color.lightGray);jButton_3.setBackground(Color.lightGray);Label5.setText("恭喜您,猜對(duì)了!");}if(random1==1){jButton_1.setBackground(Color.lightGray);jButton_2.setBackground(Color.yellow);jButton_3.setBackground(Color.lightGray);Label5.setText("彳艮遺憾,猜錯(cuò)了!");}if(random1==2){jButton_1.setBackground(Color.lightGray);jButton_2.setBackground(Color.lightGray);jButton_3.setBackground(Color.yellow);Label5.setText("彳艮遺憾,猜錯(cuò)了!");}}if(notice==2){return;}}首先通過(guò)random2產(chǎn)生兩個(gè)隨機(jī)數(shù)來(lái)模擬產(chǎn)生除卡片一以外的另兩張卡片銀卡的隨機(jī)位置,然后再通過(guò)產(chǎn)生三個(gè)隨機(jī)數(shù)(0?2之間)傳值給random1來(lái)產(chǎn)生金卡的隨機(jī)數(shù),random1==0即表示第一張卡為金卡位置,jButton_1.setBackground(Color.yellow)(設(shè)置金卡的位置為卡片一)其余的兩張卡就設(shè)置為銀卡。依次類推,就實(shí)現(xiàn)金卡隨機(jī)數(shù)的產(chǎn)生。如果你點(diǎn)擊的是卡片一(這里點(diǎn)擊的為卡片一),如果卡片一為金卡位置、,標(biāo)簽返回競(jìng)猜者的結(jié)果(猜對(duì)),否則返回(猜錯(cuò))。至于方法二,三所用的方法類似,這里不做解釋了!內(nèi)容四:第一步:創(chuàng)建一個(gè)窗口容器。第二步:創(chuàng)建一個(gè)面板和按鈕。對(duì)面板以GridLayout(3,3,0,0)布局為3行3列的網(wǎng)格,并將網(wǎng)格同數(shù)組存放到二維數(shù)組中,然后將面板加到窗口上,按鈕調(diào)用BorderLayout.NORTH方法將按鈕加到窗口最南端。第三步:實(shí)現(xiàn)游戲功能。先對(duì)游戲的所有情況進(jìn)行設(shè)計(jì)(包括輸,贏,格子占滿但和局等情況)再通過(guò)改變二維數(shù)組的值,來(lái)抽象出三棋連成一條直線或斜線贏的情況,對(duì)數(shù)組的行與列的遍歷判斷數(shù)組是否為空,來(lái)判斷棋盤(pán)是否為空的情況。若所有棋格都滿且沒(méi)有可以成直線的棋路的話,則認(rèn)為和局。內(nèi)容五:第一步:將菜單項(xiàng)添加到菜單上第二步:將菜單添加到菜單條上第三步:將菜單條和文本區(qū)加到窗口上第四步:對(duì)部分按鈕添加監(jiān)視器第五步:實(shí)現(xiàn)這些按鈕的actionPerformed()方法,來(lái)實(shí)現(xiàn)文件的打開(kāi),保存,編輯,復(fù)制粘貼,及顯示開(kāi)發(fā)人的版本信息等。(這里是通過(guò)JOptionPane.showMessageDialog()方法來(lái)開(kāi)啟一個(gè)面板顯示開(kāi)發(fā)人的版本信息)算法描述(可插入流程圖)內(nèi)容一:程序通過(guò)接受各個(gè)組件的事件,判斷是何種操作。在此過(guò)程中,這里通過(guò)獲得標(biāo)簽里的字符將其轉(zhuǎn)型為單精度數(shù)值傳值給data,通過(guò)switch語(yǔ)句,對(duì)輸入的運(yùn)算符的情況依次做對(duì)應(yīng)的運(yùn)算處理(加減乘除)。再調(diào)用lab.setText(Double.toString(data)在標(biāo)簽以雙精度整型輸出計(jì)算結(jié)果。同理調(diào)用Math.sqrt()方法實(shí)現(xiàn)開(kāi)放運(yùn)算。另外,清空按鈕是獲取文本框的內(nèi)容對(duì)其進(jìn)行清空的操作,退格的操作是將文本框中的字符串截取最后一個(gè)字符之前的所有內(nèi)容再顯示標(biāo)簽中。
內(nèi)容二程序應(yīng)用JAVA的輸入輸出流,打開(kāi)文件iris.txt,調(diào)用StringTokenizer類創(chuàng)建一個(gè)分析器按照并按水平制表的分詞方法讀取文件中的內(nèi)容,調(diào)用BufferedReader類中的方法readLine讀取文本行。再利用兩個(gè)數(shù)組存放文件中列的和以及各列的平均值,這里用count記錄讀取的行數(shù),sum[k]存放各列的和,sum[k]/count存放各列的平均值(注意輸入的為長(zhǎng)寬相等的表格形式,內(nèi)容為數(shù)值)。內(nèi)容三:第一種猜測(cè)方案: 第二種猜測(cè)方案:實(shí)驗(yàn)次數(shù)<m實(shí)驗(yàn)次數(shù)<m產(chǎn)生金卡隨機(jī)數(shù)k觀眾猜測(cè)的隨機(jī)數(shù)ml^^^^K^m^^'N^正確次數(shù)Count1++試驗(yàn)次數(shù)<m產(chǎn)生金卡隨機(jī)數(shù)r第一猜測(cè)的隨機(jī)數(shù)ml銀卡的隨機(jī)數(shù)k!=m1第二次猜測(cè)的隨機(jī)數(shù)m2!=k^^^\R=m2^^^n"^正確次數(shù)Count2++內(nèi)容四:程序通過(guò)創(chuàng)建一個(gè)窗口,并以窗口作為監(jiān)視器實(shí)現(xiàn)對(duì)面板的監(jiān)聽(tīng)。對(duì)于面板,將其劃分為3x3的九個(gè)網(wǎng)格,添加到窗口上,并以二維數(shù)組存放網(wǎng)格。通過(guò)的二維數(shù)組的判斷來(lái)實(shí)現(xiàn)輸贏與和局的情況。其次,對(duì)網(wǎng)格單位添加鼠標(biāo)監(jiān)視器并實(shí)現(xiàn)了鼠標(biāo)事件的處理,調(diào)用paintComponent(Graphicsg)方法,實(shí)現(xiàn)了在單位網(wǎng)格畫(huà)“X”和“橢圓”的功能。對(duì)于按鈕,將其按3orderLayout添加到窗口的最南端。整個(gè)界面通過(guò)對(duì)組件的屬性設(shè)置而變得生動(dòng)極具個(gè)性色彩。內(nèi)容五:第一步:程序通過(guò)創(chuàng)建一個(gè)窗口,將文本區(qū)和菜單條添加到窗口上。第二步:以窗口作為監(jiān)視器對(duì)部分菜單項(xiàng)監(jiān)聽(tīng),通過(guò)實(shí)現(xiàn)這些按鈕的actionPerformed()方法,來(lái)實(shí)現(xiàn)文件的打開(kāi),保存,編輯,復(fù)制粘貼,及顯示開(kāi)發(fā)人的版本信息等。(注意:這里是通過(guò)JOptionPane.showMessageDialog()方法來(lái)開(kāi)啟一個(gè)面板顯示開(kāi)發(fā)人的版本信息)五、程序設(shè)計(jì)1.程序設(shè)計(jì)的基本思路內(nèi)容一:通過(guò)繼承JFrame類和實(shí)現(xiàn)監(jiān)聽(tīng)器接口ActionListener和ItemListener接口來(lái)完成窗口的布局管理和個(gè)組件相對(duì)應(yīng)的事件。定義一個(gè)窗口作為容器來(lái)合理安置一個(gè)標(biāo)簽、五個(gè)面板和三個(gè)同組的選擇框等組件,標(biāo)簽用來(lái)顯示輸入的數(shù)據(jù)和運(yùn)算的結(jié)果,第一個(gè)面板用來(lái)存放數(shù)字鍵、“.”和“二”。第二個(gè)面板用來(lái)存放四則運(yùn)算的運(yùn)算符,第三個(gè)面板用來(lái)存放“返回”、“清除”和“sqrt”。第四個(gè)面板用來(lái)存放大寫(xiě)字母A-F。第五個(gè)面板存放一個(gè)退出程序。三個(gè)同組的選擇框直接添加到窗口上并完成十六進(jìn)制、八進(jìn)制和二進(jìn)制轉(zhuǎn)換。最后把標(biāo)簽,三個(gè)同組的選擇框和五個(gè)面板放到窗口容器中。3.通過(guò)實(shí)現(xiàn)ActionListener中的actionPerformed(ActionEvente)方法以及ItemListener中的itemStateChanged方法來(lái)實(shí)現(xiàn)各個(gè)組件相對(duì)應(yīng)的事件。用if語(yǔ)句判斷執(zhí)行各按鈕的功能,用switch語(yǔ)句實(shí)現(xiàn)四則運(yùn)算,調(diào)用Math.sqrt()方法實(shí)現(xiàn)開(kāi)方運(yùn)算。內(nèi)容二利用java輸入輸出流,來(lái)打開(kāi)記事本,調(diào)用StringTokenizer類創(chuàng)建一個(gè)分析器按照并按水平制表的分詞方法讀取文件中的內(nèi)容,調(diào)用BufferedReader類中的方法readLine讀取文本行。用兩個(gè)數(shù)組分別存列的均值和列的和并輸出結(jié)果并用try...catch語(yǔ)句來(lái)捕捉文本讀取時(shí)觸發(fā)的錯(cuò)誤事件。內(nèi)容三:1.通過(guò)繼承JFrame類和實(shí)現(xiàn)監(jiān)聽(tīng)器接口ActionListener接口來(lái)完成窗口的布局管理和個(gè)組件相對(duì)應(yīng)的事件。這里將各組件直接加到窗口容器上(通過(guò)setBounds()方法來(lái)實(shí)現(xiàn)),組件的屬性有背景顏色、大小位置,字體顏色、大小等。從而整個(gè)界面凸顯個(gè)性色彩。通過(guò)實(shí)現(xiàn)ActionListener中的actionPerformed(ActionEvente)方法來(lái)實(shí)現(xiàn)各個(gè)組件相對(duì)應(yīng)的事件。用if語(yǔ)句判斷執(zhí)行各按鈕的功能,用try...catch語(yǔ)句來(lái)捕捉使用計(jì)算器時(shí)觸發(fā)的錯(cuò)誤事件通過(guò)蒙特卡洛仿真原理來(lái)模擬黃金卡競(jìng)猜過(guò)程,利用產(chǎn)生隨機(jī)數(shù)的方法來(lái)模擬金卡隨機(jī)位置和銀卡隨機(jī)位置,以及競(jìng)猜者隨機(jī)選卡片,主持人翻一張銀卡等。內(nèi)容四:程序通過(guò)創(chuàng)建一個(gè)窗口,并以窗口作為監(jiān)視器實(shí)現(xiàn)對(duì)面板的監(jiān)聽(tīng)。將面板劃分為3x3的九個(gè)網(wǎng)格,添加到窗口上,并以二維數(shù)組存放網(wǎng)格。通過(guò)對(duì)二維數(shù)組的判斷來(lái)實(shí)現(xiàn)輸贏與和局的情況。對(duì)網(wǎng)格單位添加鼠標(biāo)監(jiān)視器(MouseListener)并實(shí)現(xiàn)鼠標(biāo)事件的處理,調(diào)用paintComponent(Graphicsg)方法,實(shí)現(xiàn)在單位網(wǎng)格畫(huà)“X”和“橢圓”的功能。對(duì)于按鈕,將其按BorderLayout添加到窗口的最南端。內(nèi)容五:基于內(nèi)容五按照要求將一個(gè)帶有三個(gè)菜單的菜單條添加到窗口頂端,再將一個(gè)文本區(qū)添加到窗口中央,三個(gè)菜單各自添加相應(yīng)的菜單項(xiàng)。通過(guò)對(duì)菜單項(xiàng)添加窗口作為監(jiān)視器,然后實(shí)現(xiàn)actionPerformed方法來(lái)實(shí)現(xiàn)實(shí)現(xiàn)文件的打開(kāi),保存,編輯,復(fù)制粘貼,及顯示開(kāi)發(fā)人的版本信息2.程序代碼內(nèi)容一:源代碼如下:importjava.awt.*;importjava.awt.event.*;classThis_number_too_bigextendsException{}//自定義的一個(gè)結(jié)果溢出異常類classJsuanqiextendsFrameimplementsItemListener,ActionListener{publicJsuanqi(){addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){dispose();//關(guān)閉窗體會(huì)釋放該窗體的占用的部分資源System.exit(0);}});}staticJsuanqimainFrame=newJsuanqi();//創(chuàng)建窗口(聲明和分配內(nèi)存)staticLabellab=newLabel("0");//標(biāo)簽staticPanelpnl1=newPanel(newGridLayout(4,3,3,3));//四行三列的面板staticPanelpnl2=newPanel(newGridLayout(4,1,3,3));staticPanelpnl3=newPanel(newGridLayout(1,3,3,3));staticPanelpnl4=newPanel(newGridLayout(6,1,3,3));staticPanelpnl5=newPanel(newGridLayout(1,1,3,3));/添加一個(gè)一行一列的畫(huà)板5staticButtonbutton=newButton("預(yù)祝大家暑假快樂(lè),再見(jiàn)!");//新建一個(gè)按鈕staticButtonbt9=newButton("9");staticButtonbt8=newButton("8");staticButtonbt7=newButton("7");staticButtonbt6=newButton("6");staticButtonbt5=newButton("5");staticButtonbt4=newButton("4");staticButtonbt3=newButton("3");staticButtonbt2=newButton("2");staticButtonbt1=newButton('T');staticButtonbt0=newButton("0");staticButtonbtdot=newButton(".”);staticButtonbtequ=newButton("=");staticButtonbtadd=newButton("+");staticButtonbtsub=newButton("-");staticButtonbtmul=newButton("*");staticButtonbtdev=newButton("/");staticButtonbtA=newButton("A");staticButtonbtB=newButton("B");staticButtonbtC=newButton("C");staticButtonbtD=newButton("D");staticButtonbtE=newButton("E");staticButtonbtF=newButton("F");staticCheckboxckb8=newCheckbox("A進(jìn)制");//選擇框staticCheckboxckb10=newCheckbox("十進(jìn)制");staticCheckboxckb16=newCheckbox("十六進(jìn)制");staticButtonbtc=newButton("清除");staticButtonbtt=newButton("返回");staticButtonbts=newButton("sqrt");publicintnumber=0,length=18;//number是用來(lái)記錄輸入的數(shù)字個(gè)數(shù),length是用來(lái)設(shè)置在不同進(jìn)制下允許輸入的最多數(shù)字位數(shù),默認(rèn)為十進(jìn)制publiccharmark='n';//設(shè)置運(yùn)算符號(hào)為沒(méi)有即為‘n’,它的值是‘+’‘-’‘*’‘/’publicdoubledata=0;//設(shè)置運(yùn)算數(shù)據(jù)為零publiccharch;//用來(lái)臨時(shí)存放所按按鈕的第一個(gè)字符publicbooleanRefresh=false;//設(shè)置lab是否要在輸入數(shù)據(jù)的時(shí)候刷新,初始為否publicstaticvoidmain(Stringargs[]){lab.setAlignment(Label.RIGHT);//設(shè)置布局的對(duì)齊方式lab.setBackground(Color.green);//背景顏色lab.setForeground(Color.white);//前景顏色lab.setFont(newFont("Serief”,Font.BOLD,18));//設(shè)置字體,粗體,18磅lab.setBounds(14,33,216,40);mainFrame.add(lab);button.setBackground(Color.white);//背景顏色button.setForeground(Color.red);//前景顏色button.setFont(newFont("Serief”,Font.BOLD,20));//設(shè)置字體,粗體,20磅 一CheckboxGroupgrp=newCheckboxGroup();//對(duì)Checkbox集合進(jìn)行分組ckb8.setCheckboxGroup(grp);ckb10.setCheckboxGroup(grp);ckb16.setCheckboxGroup(grp);ckb8.setBounds(14,75,55,25);ckb10.setBounds(69,75,55,25);ckb16.setBounds(124,75,65,25);ckb8.setState(false);ckb10.setState(true);ckb16.setState(false);mainFrame.add(ckb8);mainFrame.add(ckb10);mainFrame.add(ckb16);pnl1.setBounds(14,140,120,150);pnl2.setBounds(144,140,40,150);pnl3.setBounds(14,100,170,36);pnl4.setBounds(190,100,40,190);pnl5.setBounds(10,296,230,40);pnl1.add(bt7);pnl1.add(bt8);pnl1.add(bt9);pnl1.add(bt4);pnl1.add(bt5);pnl1.add(bt6);pnl1.add(bt1);pnl1.add(bt2);pnl1.add(bt3);pnl1.add(bt0);pnl1.add(btdot);pnl1.add(btequ);pnl2.add(btadd);pnl2.add(btsub);pnl2.add(btmul);pnl2.add(btdev);pnl3.add(btt);pnl3.add(btc);pnl3.add(bts);pnl4.add(btA);pnl4.add(btB);pnl4.add(btC);pnl4.add(btD);pnl4.add(btE);pnl4.add(btF);pnl5.add(button);btA.setEnabled(false);btB.setEnabled(false);btC.setEnabled(false);btD.setEnabled(false);btE.setEnabled(false);btF.setEnabled(false);mainFrame.add(pnll);mainFrame.add(pnl2);mainFrame.add(pnl3);mainFrame.add(pnl4);mainFrame.add(pnl5);mainFrame.setResizable(false);//生成的窗體大小是由程序員決定的,用戶不可以自由改變?cè)摯绑w的大小。mainFrame.setLayout(null);//空布局mainFrame.setSize(240,340);mainFrame.setTitle("祺爺專屬計(jì)算器");mainFrame.setVisible(true);ckb8.addItemListener(mainFrame);ckb10.addItemListener(mainFrame);ckb16.addItemListener(mainFrame);〃把事件聆聽(tīng)者向各個(gè)組鍵注冊(cè)button.addActionListener(mainFrame);bt1.addActionListener(mainFrame);//動(dòng)作監(jiān)視器bt2.addActionListener(mainFrame);bt3.addActionListener(mainFrame);bt4.addActionListener(mainFrame);bt5.addActionListener(mainFrame);bt6.addActionListener(mainFrame);bt7.addActionListener(mainFrame);bt8.addActionListener(mainFrame);bt9.addActionListener(mainFrame);bt0.addActionListener(mainFrame);btadd.addActionListener(mainFrame);btsub.addActionListener(mainFrame);btmul.addActionListener(mainFrame);btdev.addActionListener(mainFrame);btt.addActionListener(mainFrame);btc.addActionListener(mainFrame);bts.addActionListener(mainFrame);btdot.addActionListener(mainFrame);btequ.addActionListener(mainFrame);btA.addActionListener(mainFrame);btB.addActionListener(mainFrame);btC.addActionListener(mainFrame);btD.addActionListener(mainFrame);btE.addActionListener(mainFrame);btF.addActionListener(mainFrame);}//endmain()mothed//checkbox事件的處理publicvoiditemStateChanged(ItemEvente){mark=,n,;Refresh=false;〃規(guī)定當(dāng)進(jìn)制轉(zhuǎn)換時(shí)以前輸入的運(yùn)算符失效if(ckb8.getState()==true){btA.setEnabled(false);btB.setEnabled(false);btC.setEnabled(false);btD.setEnabled(false);btE.setEnabled(false);btF.setEnabled(false);bt9.setEnabled(false);bt8.setEnabled(false);btdot.setEnabled(false);btadd.setEnabled(false);btmul.setEnabled(false);btsub.setEnabled(false);btdev.setEnabled(false);btequ.setEnabled(false);//在八進(jìn)制的情況下對(duì)有些按件的管理if(length==18){lab.setText(goto10_8(lab.getText()));number=lab.getText().length();}if(length==14){lab.setText(goto_10(lab.getText(),16L));lab.setText(goto10_8(lab.getText()));number=lab.getText().length();}〃將其他進(jìn)制轉(zhuǎn)換成八進(jìn)制length=19;//在八進(jìn)制下允許輸入數(shù)字個(gè)數(shù)最多為19位}if(ckb10.getState()==true){btA.setEnabled(false);btB.setEnabled(false);btC.setEnabled(false);btD.setEnabled(false);btE.setEnabled(false);btF.setEnabled(false);bt9.setEnabled(true);bt8.setEnabled(true);btdot.setEnabled(true);btadd.setEnabled(true);btmul.setEnabled(true);btsub.setEnabled(true);btdev.setEnabled(true);btequ.setEnabled(true);〃在十進(jìn)制的情況下對(duì)有些按件的管理if(length==19){lab.setText(goto_10(lab.getText(),8L));number=lab.getText().length();}if(length==14){lab.setText(goto_10(lab.getText(),16L));number=lab.getText().length();}//進(jìn)制轉(zhuǎn)換成十進(jìn)制length=18;〃在十進(jìn)制下允許輸入數(shù)字個(gè)數(shù)最多為18位}if(ckb16.getState()==true){btA.setEnabled(true);btB.setEnabled(true);btC.setEnabled(true);btD.setEnabled(true);btE.setEnabled(true);btF.setEnabled(true);bt9.setEnabled(true);bt8.setEnabled(true);btdot.setEnabled(false);btadd.setEnabled(false);btmul.setEnabled(false);btsub.setEnabled(false);btdev.setEnabled(false);btequ.setEnabled(false);〃在十六進(jìn)制的情況下對(duì)有些按件的管理if(length==18){lab.setText(goto10_16(lab.getText()));number=lab.getText().length();}if(length==19){lab.setText(goto_10(lab.getText(),8L));lab.setText(goto10_16(lab.getText()));number=lab.getText().length();}//將其他進(jìn)制轉(zhuǎn)換成十六進(jìn)制length=14;//在十六進(jìn)制下允許輸入數(shù)字個(gè)數(shù)最多為14位}}//enditemStateChanged(ItemEvente)method// //按鈕事件的處理publicvoidactionPerformed(ActionEventm){if(m.getSource()==button){System.exit(0);}//對(duì)按鈕添加一個(gè)退出功能,由窗口監(jiān)視if(m.getSource()==bts){data=Double.parseDouble(lab.getText());//將標(biāo)簽里的字符轉(zhuǎn)型為雙精度數(shù)值并傳給data變量doubles=Math.sqrt(data);lab.setText(Double.toString(s));}Buttonbtn=(Button)m.getSource();ch=btn.getLabel().charAt(0);//獲取第一個(gè)字母switch(ch){case'c': {lab.setText("0”);number=0;mark='n';Refresh=false;}break;//初始化case'1':enter();break;case'2':enter();break;case'3':enter();break;case'4':enter();break;case'5':enter();break;case'6':enter();break;case'7':enter();break;case'8':enter();break;case'9':enter();break;case'0':{if(Refresh==true){lab.setText("0”);number=0;Refresh=false;}if(lab.getText().charAt(0)=='0'&&lab.getText().length()==1)break;if(number<length){number++;lab.setText(lab.getText()+ch);}elsebreak;}break;case'A':enter();break;case'B':enter();break;case'C':enter();break;case'D':enter();break;case'E':enter();break;case'F':enter();break;case'.':{if(Refresh==true){lab.setText("0”);number=0;Refresh=false;}if(lab.getText().indexOf('.')==-1){number++;lab.setText(lab.getText()+ch);}elsebreak;}break;case'b':{if(number==0)break;else{if(—number==0){lab.setText("0”);number=0;}else{if(number!=1)lab.setText(lab.getText().substring(0,number));//返回一個(gè)新的字符串elselab.setText(Character.toString(lab.getText().charAt(0)));}}}break;case'+':try{js();}catch(This_number_too_bige){lab.setText("0”);number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}break;〃如果出現(xiàn)異常則初始化效果如同clear鍵case'-':try{js();}catch(This_number_too_bige){lab.setText("0”);number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}break;〃如果出現(xiàn)異常則初始化效果如同clear鍵case'*':try{js();}catch(This_number_too_bige){lab.setText("0”);number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}break;〃如果出現(xiàn)異常則初始化效果如同clear鍵case'/':try{js();}catch(This_number_too_bige){lab.setText("0”);number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}break;〃如果出現(xiàn)異常則初始化效果如同clear鍵case'=':try{js();}catch(This_number_too_bige){lab.setText("0”);number=0;mark='n';Refresh=false;System.out.println("Thenumberistoobig");}break;〃如果出現(xiàn)異常則初始化效果如同clear鍵〃如果出現(xiàn)異常則初始化效果如同clear鍵}}//endactionPerformed(ActionEvente)method//八進(jìn)制或十六進(jìn)制轉(zhuǎn)換成十進(jìn)制I// InfinitypublicStringgoto_10(Strings,longl)〃參數(shù)s:是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性;〃參數(shù)l:使用來(lái)設(shè)置是將8進(jìn)制還是16進(jìn)制轉(zhuǎn)換成10進(jìn)制,它的有效值為8或16;{Stringstr=s;//用來(lái)轉(zhuǎn)換的字符串longj=l;//表示進(jìn)制longlg=0,jing=1;//lg用來(lái)記錄權(quán)乘和,jing用來(lái)記錄位權(quán)charcha;//臨時(shí)記錄要轉(zhuǎn)換的字符for(inti=1;i<=str.length();i++){cha=str.charAt(str.length()-i);switch(cha){case'1':lg=lg+1*jing;break;case'2':lg=lg+2*jing;break;case'3':lg=lg+3*jing;break;case'4':lg=lg+4*jing;break;case'5':lg=lg+5*jing;break;case'6':lg=lg+6*jing;break;case'7':lg=lg+7*jing;break;case'8':lg=lg+8*jing;break;case'9':lg=lg+9*jing;break;case'A':lg=lg+10*jing;break;case'B':lg=lg+11*jing;break;case'C':lg=lg+12*jing;break;case'D':lg=lg+13*jing;break;case'E':lg=lg+14*jing;break;case'F':lg=lg+15*jing;break;}jing*=j;//位權(quán)升一級(jí),為下次使用做好準(zhǔn)備}returnLong.toString(lg);}//endStringgoto_10()method〃十進(jìn)制轉(zhuǎn)換成十六進(jìn)制// publicStringgoto10_16(Strings)〃參數(shù)s:是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性;{Stringstr=s;//用來(lái)轉(zhuǎn)換的字符串Stringst=newString();//用來(lái)記錄16進(jìn)制值的字符串longch;//每次取余有的值intk;〃將每次取余有的值轉(zhuǎn)換成整形,用來(lái)選擇轉(zhuǎn)換的16進(jìn)制字符longlg;//用來(lái)轉(zhuǎn)換的10進(jìn)制數(shù)if(str.charAt(0)=='-')//如果有負(fù)號(hào)則出去負(fù)號(hào)str=str.substring(1,str.length()-1);if(str.indexOf('E')!=-1)//如果是科學(xué)計(jì)數(shù)值則除去小數(shù)點(diǎn)和E后面的數(shù)str=str.charAt(0)+str.substring(2,str.indexOf('E'));if(str.indexOf('.')!=-1)//如果有小數(shù)點(diǎn)則除去小數(shù)點(diǎn)及小數(shù)點(diǎn)后面的內(nèi)容str=str.substring(0,str.indexOf('.'));lg=Long.parseLong(str);//將簡(jiǎn)化的字符串轉(zhuǎn)化為長(zhǎng)整形給lgwhile(lg>=16){ch=lg%16;k=(int)ch;switch(k){case10:st="A"+st;break;case11:st="B"+st;break;case12:st="C"+st;break;case13:st="D"+st;break;case14:st="E"+st;break;case15:st="F"+st;break;default:st=Long.toString(ch)+st}lg=lg/16;}k=(int)lg;switch(k){case10:st="A"+st;break;case11:st="B"+st;break;case12:st="C"+st;break;case13:st="D"+st;break;case14:st="E"+st;break;case15:st="F"+st;break;default:st=Long.toString(lg)+st}returnst;}//endgoto10_16()method// //十進(jìn)制轉(zhuǎn)換成八進(jìn)制?publicStringgoto10_8(Strings)〃參數(shù)s:是要轉(zhuǎn)換的字符串,由于輸入的控制,保證了字符串的合法性;{Stringstr=s;Stringst=newString();longj=8,ch;longlg;if(str.charAt(0)=='-')//如果有負(fù)號(hào)則出去負(fù)號(hào)str=str.substring(1,str.length()-1);if(str.indexOf('E')!=-1)//如果是科學(xué)計(jì)數(shù)值則除去小數(shù)點(diǎn)和E后面的數(shù)str=str.charAt(0)+str.substring(2,str.indexOf('E'));if(str.indexOf('.')!=-1)//如果有小數(shù)點(diǎn)則除去小數(shù)點(diǎn)及小數(shù)點(diǎn)后面的內(nèi)容str=str.substring(0,str.indexOf('.'));lg=Long.parseLong(str);while(lg>=j){ch=lg%j;st=Long.toString(ch)+st;lg=lg/j;}st=Long.toString(lg)+st;returnst;}//endgoto10_8()method// //輸入字符publicvoidenter(){if(Refresh==true)//如果已經(jīng)設(shè)置了運(yùn)算符則在下一次輸入數(shù)據(jù)的時(shí)候要把以前l(fā)ab的內(nèi)容清除掉{lab.setText("0”);number=0;Refresh=false;}if(lab.getText().charAt(0)=='0'&&lab.getText().length()==1)〃如果lab的內(nèi)容為0則0,lab的內(nèi)容將被所輸入的字符代替,否則直接在lab的內(nèi)容后面加上所輸入的字符{lab.setText(Character.toString(ch));number++;}elseif(number<length){number++;lab.setText(lab.getText()+ch);}}//endenter()method// 〃用來(lái)處理按了運(yùn)算符后的計(jì)算-publicvoidjs()throwsThis_number_too_big//指定由method拋出異常{if(mark=='n')//沒(méi)有運(yùn)算符{mark=ch;//,則設(shè)置運(yùn)算符為剛剛輸入的字符,data=Double.parseDouble(lab.getText());//將標(biāo)簽里的字符轉(zhuǎn)型為雙精度數(shù)值并傳給data變量Refresh=true;//則設(shè)置下一次輸入的時(shí)候要刷新lab}else〃如果采用的是連續(xù)運(yùn)算(即沒(méi)有使用‘='號(hào))則運(yùn)行下面的語(yǔ)句{switch(mark)//根據(jù)運(yùn)算符計(jì)算結(jié)果,并把結(jié)果保存到data{case'+':data+=Double.parseDouble(lab.getText());break;case'-':data-=Double.parseDouble(lab.getText());break;case'*':data*=Double.parseDouble(lab.getText());break;case'/':data/=Double.parseDouble(lab.getText());break;}lab.setText(Double.toString(data));//顯示運(yùn)算結(jié)果mark=ch;//設(shè)置運(yùn)算符為剛剛按下的運(yùn)算符Refresh=true;//則設(shè)置下一次輸入的時(shí)候要刷新labnumber=lab.getText().length();//設(shè)置輸入的字符個(gè)數(shù)//System.out.println(lab.getText());//用來(lái)調(diào)試用的if(data>Double.MAX_VALUE)//如果data超過(guò)double類型的最大值則拋出自定義的一個(gè)異常類{thrownewThis_number_too_big();}}}//endjs()method// publicvoidanswer()throwsThis_number_too_big//指定由method拋出異常{if(mark==,n,){}else{switch(mark){case'+':data+=Double.parseDouble(lab.getText());break;case'-':data-=Double.parseDouble(lab.getText());break;case'*':data*=Double.parseDouble(lab.getText());break;case'/':data/=Double.parseDouble(lab.getText());break;}lab.setText(Double.toString(data));mark=,n,;}if(data>Double.MAX_VALUE)//如果data超過(guò)double類型的最大值則拋出自定義的一個(gè)異常類{thrownewThis_number_too_big();}Refresh=false;number=lab.getText().length();}//endanswer()method// }//endclassjisuanqi內(nèi)容二源代碼如下:importjava.io.*;importjava.util.*;importjava.text.DecimalFormat;publicclasslostream{publicstaticvoidmain(Stringargs[]){ System.out.println("讀取文件iris.txt中..."+"\n");floatsum[]=newfloat[4];//存放所有列的和floataverage]]=newfloat[4];//存放平均值intcount=0;//用來(lái)記錄文件的行數(shù)Stringstr[]=newString[5],s;//文件讀取緩沖區(qū)try{FileReaderfile=newFileReader("e:\\iris.txt");BufferedReaderbr=newBufferedReader(file);s=br.readLine();while(s!=null)//循環(huán)讀取所有的數(shù){inti=0;StringTokenizer tokenizer = newStringTokenizer(s,"\t");while(tokenizer.hasMoreTokens()){str[i]=tokenizer.nextToken();floattemp=Float.parseFloat(str[i]);//把字符型數(shù)轉(zhuǎn)換成數(shù)字類型sum[i]=sum[i]+temp;i++;}s=br.readLine();count++;}br.close();file.close();}catch(Exceptione){System.out.print("文件讀取錯(cuò)誤");}for(intk=0;k<4;k++){average[k]=sum[k]/count;System.out.println("第"+(k+1)+"列的和是:"+sum[k]);System.out.println("第"+(k+1)+"列的平均值是:"+average[k]+"\n");}}}內(nèi)容三:源代碼如下:importjava.awt.BorderLayout;importjava.awt.Button;importjava.awt.Canvas;importjava.awt.Color;importjava.awt.FlowLayout;importjava.awt.Font;importjava.awt.Label;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.GroupLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JOptionPane;importjavax.swing.JTextField;publicclassHuangjinka2{publicstaticvoidmain(String[]args){Huangjinka1g=newHuangjinka1();}}classHuangjinka1extendsJFrameimplementsActionListener{intflag;intrandom1,random2,random3;Buttonbutton;//創(chuàng)建要添加的按鈕JButtonjButton1;JButtonjButton_1;JButtonjButton_2;JButtonjButton_3;JButtonjButton4;JLabeljLabel1;JLabeljLabel2;JLabeljLabel3;JLabeljLabel4;LabelLabel5;JLabeljLabel01;JLabeljLabel02;JLabeljLabel03;JTextFieldjTextField1;//對(duì)應(yīng)方法旁邊的文本框(不可編輯)JTextFieldjTextField2;JTextFieldjTextField3;JTextFieldjTextField4;//開(kāi)始測(cè)試旁邊的文本框(可編輯)JTextFieldjTextField01;//獲勝概率旁邊的文本框(不可編輯)JTextFieldjTextField02;JTextFieldjTextField03;publicHuangjinka1(){button=newButton("我游戲,我快樂(lè)!同學(xué)們?cè)僖?jiàn)!");jButton1=newJButton();//創(chuàng)建四個(gè)按鈕(三個(gè)作為黃金卡片)jButton_1=newJButton();jButton_2=newJButton();jButton_3=newJButton();jButton4=newJButton();〃創(chuàng)建標(biāo)簽和文本框組件jLabel1=newJLabel();jTextField1=newJTextField(10);jTextField2=newJTextField(10);jLabel2=newJLabel();jTextField3=newJTextField(10);jLabel3=newJLabel();jLabel4=newJLabel();jTextField4=newJTextField(9);Label5=newLabel("請(qǐng)選擇卡片");jLabel01=newJLabel();jTextField01=newJTextField(10);jTextField02=newJTextField(10);jLabel02=newJLabel();jTextField03=newJTextField(10);jLabel03=newJLabel();〃設(shè)置文本框是不可編輯的jTextField1.setEditable(false);jTextField01.setEditable(false);//設(shè)置標(biāo)簽名稱jLabel1.setText("方法一:");jLabel01.setText("獲勝概率");jTextField2.setEditable(false);jTextField02.setEditable(false);jLabel2.setText("方法二:");jLabel02.setText("獲勝概率");jTextField3.setEditable(false);jTextField03.setEditable(false);jLabel3.setText("方法三:");jLabel03.setText("獲勝概率");jLabel4.setText("請(qǐng)輸入測(cè)試次數(shù):");setTitle(-黃金卡游戲信科1021謝佳祺");//設(shè)置窗口名稱setLayout(null);setSize(500,569);//設(shè)置huangjinka窗口的長(zhǎng)和寬setLocationRelativeTo(null);〃設(shè)置標(biāo)簽和對(duì)應(yīng)文本框的位置jLabel1.setBounds(50,20,100,30);add(jLabel1);add(jTextField1);jTextField1.setBounds(100,20,130,30);jLabel01.setBounds(300,20,100,30);add(jLabel01);jTextField01.setBounds(355,20,100,30);add(jTextField01);jLabel2.setBounds(50,70,100,30);add(jLabel2);add(jTextField2);jTextField2.setBounds(100,70,130,30);jLabel02.setBounds(300,70,100,30);add(jLabel02);jTextField02.setBounds(355,70,100,30);add(jTextField02);jLabel3.setBounds(50,120,100,30);add(jLabel3);add(jTextField3);jTextField3.setBounds(100,120,130,30);jLabel03.setBounds(300,120,100,30);add(jLabel03);jTextField03.setBounds(355,120,100,30);add(jTextField03);jLabel4.setBounds(50,180,120,30);add(jLabel4);add(jTextField4);jTextField4.setBounds(175,180,130,30);jButton1.setText("開(kāi)始測(cè)試");jButton4.setText("再猜一次");add(button);//將按鈕加到窗口上add(jButton1);//將按鈕添加到huangjinka窗口上add(jButton_1);add(jButton_2);add(jButton_3);add(jButton4);button.setBounds(50,400,400,100);//添加按鈕的位置大小jButton1.setBounds(310,180,140,30);//設(shè)置開(kāi)始測(cè)試按鈕的位置jButton_1.setBounds(50,220,100,130);//設(shè)置三張卡片的大小位置jButton_2.setBounds(200,220,100,130);jButton_3.setBounds(350,220,100,130);jButton4.setBounds(260,360,100,30);//再猜一次按鈕的位置jButton1.setOpaque(true);//必須先設(shè)置為true,才能對(duì)JButton按鈕進(jìn)行背景顏色設(shè)置jButton4.setOpaque(true);button.setBackground(Color.cyan);button.setFont(newFont("Serief”,Font.BOLD,25));//設(shè)置字體,粗體,2磅jButton1.setBackground(Color.pink);jButton4.setBackground(Color.CYAN);jLabel1.setOpaque(true);//必須先設(shè)置為true,才能對(duì)JLable標(biāo)簽進(jìn)行背景顏色設(shè)置jLabel2.setOpaque(true);jLabel3.setOpaque(true);jLabel01.setOpaque(true);jLabel02.setOpaque(true);jLabel03.setOpaque(true);jLabel4.setOpaque(true);jLabell.setBackground(Color.cyan);jLabel2.setBackground(Color.cyan);jLabel3.setBackground(Color.cyan);jLabel4.setBackground(Color.blue);jLabel01.setBackground(Color.magenta);jLabel02.setBackground(Color.magenta);jLabel03.setBackground(Color.magenta);jTextField1.setBackground(Color.RED);jTextField2.setBackground(Color.RED);jTextField3.setBackground(Color.RED);jTextField01.setBackground(Color.orange);jTextField02.setBackground(Color.orange);jTextField03.setBackground(Color.orange);jTextField4.setBackground(Color.GREEN);Label5.setBounds(155,360,100,30);//設(shè)置請(qǐng)選擇卡片的位置和背景顏色,并添加到窗口上Label5.setBackground(Color.PINK);add(Label5);setVisible(true);〃對(duì)6個(gè)按鈕和文本框4添加窗口作為監(jiān)視器button.addActionListener(this);jButton1.addActionListener(this);jButton_1.addActionListener(this);jButton_2.addActionListener(this);jButton_3.addActionListener(this);jButton4.addActionListener(this);jTextField4.addActionListener(this);}?OverridepublicvoidactionPerformed(ActionEvente){//按鈕監(jiān)聽(tīng)if(e.getSource()==button){System.exit(0);}//對(duì)按鈕添加一個(gè)退出功能,由窗口監(jiān)視if(e.getSource()==jButton1){Stringnumber=jTextField4.getText();//將文本框4輸入的內(nèi)容(0~9的數(shù)字)傳給numberif(number.matches(""[1-9]{1}\\d*$〃)){longcount1=0,count2=0,count3=0;int口cards={0,0,1};/用數(shù)組存放三張卡片0代表銀卡,1為金卡longtimes
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《營(yíng)業(yè)稅課件》課件
- 《統(tǒng)計(jì)調(diào)查技能模塊》課件
- 《認(rèn)識(shí)寶島臺(tái)灣》課件
- 《王老吉的市場(chǎng)營(yíng)銷》課件
- 《網(wǎng)頁(yè)設(shè)計(jì)與鑒賞》課件
- 2025年中考語(yǔ)文文言文總復(fù)習(xí)-教師版-專題01:文言文閱讀之理解實(shí)詞含義(講義)
- 鞋業(yè)生產(chǎn)線采購(gòu)招標(biāo)合同三篇
- 教育機(jī)構(gòu)話務(wù)員工作總結(jié)
- 藥品醫(yī)療器械銷售心得分享
- 兒童感染科護(hù)理工作總結(jié)
- 理解詞語(yǔ)句子的方法PPT
- 作文開(kāi)頭與結(jié)尾PPT課件ppt(共42張PPT)
- 重癥醫(yī)學(xué)科運(yùn)用PDCA循環(huán)提高消毒棉簽開(kāi)啟時(shí)間標(biāo)注的執(zhí)行率品管圈成果匯報(bào)
- 云南面向東南亞、南亞區(qū)域物流系統(tǒng)優(yōu)化研究的開(kāi)題報(bào)告
- 高效課堂教學(xué)流程和課堂常規(guī)公開(kāi)課一等獎(jiǎng)市賽課獲獎(jiǎng)?wù)n件
- 《新媒體營(yíng)銷與策劃》考試復(fù)習(xí)題庫(kù)(含答案)
- 浙江寧波廣播電視集團(tuán)發(fā)射中心招考聘用筆試參考題庫(kù)答案解析
- 2024年航天知識(shí)總結(jié)
- 公立醫(yī)院章程范本(中國(guó)醫(yī)院協(xié)會(huì)2019版)
- 江蘇小高考(物理化學(xué)生物)真題及答案
- 垃圾開(kāi)挖清運(yùn)方案
評(píng)論
0/150
提交評(píng)論