下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí)訓(xùn)八 GUI編程練習(xí)(二)實(shí)訓(xùn)性質(zhì):驗(yàn)證性、程序設(shè)計(jì) 實(shí)訓(xùn)目的(1)掌握事件監(jiān)聽(tīng)機(jī)制(2)掌握ActionEvent事件的處理(3)掌握TextEvent事件的處理實(shí)訓(xùn)環(huán)境Window XP/Sever 2003、JDK、Eclipse 實(shí)訓(xùn)內(nèi)容(1)英語(yǔ)單詞拼寫(xiě)訓(xùn)練 (2)簡(jiǎn)易計(jì)算器界面(3)操作按鈕移動(dòng)實(shí)訓(xùn)指導(dǎo)1. 英語(yǔ)單詞拼寫(xiě)訓(xùn)練(1)編寫(xiě)Java程序,窗口中有一個(gè)TextField對(duì)象和一個(gè)按鈕對(duì)象,將這兩個(gè)對(duì)象添加到一個(gè)面板中,然后再添加到窗口北面。用戶在TextFeild對(duì)象中輸入一個(gè)單詞,回車(chē)或者單機(jī)按鈕,程序?qū)?chuàng)建若干個(gè)標(biāo)簽,其個(gè)數(shù)剛好等于單詞字母?jìng)€(gè)數(shù),且每個(gè)標(biāo)簽上的字母剛好
2、是單詞的一個(gè)字母,但順序不對(duì)。要求將這些標(biāo)簽添加到一個(gè)面板中,然后將該面板添加到窗口中心。用戶用鼠標(biāo)單擊一個(gè)標(biāo)簽后,通過(guò)按下鍵盤(pán)上的上、下、左、右鍵,交換相鄰標(biāo)簽上的字母,使得標(biāo)簽的字母順序與輸入單詞的順序相同。程序模板如下:RondomString.javapublic class RondomString String str="" public String getRondomString(String s) StringBuffer strBuffer=new StringBuffer(s); int m=strBuffer.length(); for(int k=
3、0;k<m;k+) int index=(int)(Math.random()*strBuffer.length(); char c=strBuffer.charAt(index); str=str+c; strBuffer=strBuffer.deleteCharAt(index); return str; LetterLabel.javaimport java.awt.*;import java.awt.event.*;public class LetterLabel extends Button implements FocusListener,MouseListener Lett
4、erLabel() 【代碼1】 /將當(dāng)前對(duì)象注冊(cè)為自身的焦點(diǎn)視器 【代碼2】 /將當(dāng)前對(duì)象注冊(cè)為自身的標(biāo)監(jiān)視器 setBackground(Color.cyan); setFont(new Font("",Font.BOLD,30); public static LetterLabel getLetterLabel(int n) LetterLabel a=new LetterLabeln; for(int k=0;k<a.length;k+) ak=new LetterLabel(); return a; public void focusGained(FocusE
5、vent e) setBackground(Color.red); public void focusLost(FocusEvent e) setBackground(Color.cyan); public void mousePressed(MouseEvent e) requestFocus(); public void setText(char c) setLabel(""+c); public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mou
6、seExited(MouseEvent e) public void mouseClicked(MouseEvent e)SpellingWordFrame.javaimport java.awt.*;import java.awt.event.*;import javax.swing.Box;public class SpellingWordFrame extends Frame implements KeyListener,ActionListener TextField inputWord; Button button; LetterLabel label; Panel northP,c
7、enterP; Box wordBox; String hintMessage="用鼠標(biāo)單擊字母,按左右箭頭交換字母,將其排列成所輸入的單詞" Label messaageLabel=new Label(hintMessage); String word="" SpellingWordFrame() inputWord=new TextField(12); button=new Button("確定"); button.addActionListener(this); inputWord.addActionListener(this)
8、; northP=new Panel(); northP.add(new Label("輸入一個(gè)英文單詞:"); northP.add(inputWord); northP.add(button); centerP=new Panel(); wordBox=Box.createHorizontalBox(); centerP.add(wordBox); add(northP,BorderLayout.NORTH); add(centerP,BorderLayout.CENTER); add(messaageLabel,BorderLayout.SOUTH); setBoun
9、ds(100,100,350,180); setVisible(true); validate(); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); ); public void actionPerformed(ActionEvent e) word=inputWord.getText(); int n=word.length(); RondomString rondom=new RondomString(); String randomWord=ron
10、dom.getRondomString(word); wordBox.removeAll(); messaageLabel.setText(hintMessage); if(n>0) label=LetterLabel.getLetterLabel(n); for(int k=0;k<label.length;k+) 【代碼3】 /將當(dāng)前窗口注冊(cè)為labelk的鍵盤(pán)監(jiān)視器 labelk.setText(""+randomWord.charAt(k); wordBox.add(labelk); validate(); inputWord.setText(null)
11、; label0.requestFocus(); public void keyPressed(KeyEvent e) LetterLabel sourceLabel=(LetterLabel)e.getSource(); int index=-1; if(【代碼4】) /判斷按下的是否是鍵) for(int k=0;k<label.length;k+) if(labelk=sourceLabel) index=k; break; if(index!=0) String temp=labelindex.getText(); labelindex.setText(labelindex-1.
12、getText(); labelindex-1.setText(temp);labelindex-1.requestFocus(); else if(【代碼5】) /判斷按下的是否是鍵 for(int k=0;k<label.length;k+) if(labelk=sourceLabel) index=k; break; if(index!=label.length-1) String temp=labelindex.getText(); labelindex.setText(labelindex+1.getText(); labelindex+1.setText(temp);labe
13、lindex+1.requestFocus(); validate(); public void keyTyped(KeyEvent e) public void keyReleased(KeyEvent e) String success="" for(int k=0;k<label.length;k+) String str=labelk.getText(); success=success+str; if(success.equals(word) messaageLabel.setText("恭喜你,你成功了"); for(int k=0;k<label.length;k+) labelk.removeKeyListener(this);labelk.removeFocusListener(labelk); labelk.setBackground(Color.green); inputWord.requestFocus(); WordMainClass.j
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版協(xié)議起訴離婚案件財(cái)產(chǎn)評(píng)估與分配服務(wù)協(xié)議3篇
- 2025年鋼材行業(yè)供應(yīng)鏈金融合作協(xié)議范本2篇
- 2025年度個(gè)人藝術(shù)品購(gòu)買(mǎi)連帶擔(dān)保協(xié)議4篇
- 2025年度個(gè)人藝術(shù)品交易傭金協(xié)議書(shū)樣本4篇
- 2025年度個(gè)人教育培訓(xùn)課程開(kāi)發(fā)與授權(quán)協(xié)議書(shū)3篇
- 2025-2030全球ASME 規(guī)范高壓釜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球雙向拉伸PET薄膜行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年全球及中國(guó)步進(jìn)式爐床行業(yè)頭部企業(yè)市場(chǎng)占有率及排名調(diào)研報(bào)告
- 2025-2030全球半導(dǎo)體濕法工藝泵行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025-2030全球地下雨水儲(chǔ)存系統(tǒng)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2024-2025學(xué)年山東省濰坊市高一上冊(cè)1月期末考試數(shù)學(xué)檢測(cè)試題(附解析)
- 江蘇省揚(yáng)州市蔣王小學(xué)2023~2024年五年級(jí)上學(xué)期英語(yǔ)期末試卷(含答案無(wú)聽(tīng)力原文無(wú)音頻)
- 數(shù)學(xué)-湖南省新高考教學(xué)教研聯(lián)盟(長(zhǎng)郡二十校聯(lián)盟)2024-2025學(xué)年2025屆高三上學(xué)期第一次預(yù)熱演練試題和答案
- 決勝中層:中層管理者的九項(xiàng)修煉-記錄
- 幼兒園人民幣啟蒙教育方案
- 臨床藥師進(jìn)修匯報(bào)課件
- 軍事理論(2024年版)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 《無(wú)人機(jī)法律法規(guī)知識(shí)》課件-第1章 民用航空法概述
- 政治丨廣東省2025屆高中畢業(yè)班8月第一次調(diào)研考試廣東一調(diào)政治試卷及答案
- 2020-2024年安徽省初中學(xué)業(yè)水平考試中考物理試卷(5年真題+答案解析)
- 鑄石防磨施工工藝
評(píng)論
0/150
提交評(píng)論