Java圖形用戶界面設(shè)計(jì)(GUI),遼寧工程技術(shù)大學(xué),理學(xué)院資料_第1頁
Java圖形用戶界面設(shè)計(jì)(GUI),遼寧工程技術(shù)大學(xué),理學(xué)院資料_第2頁
Java圖形用戶界面設(shè)計(jì)(GUI),遼寧工程技術(shù)大學(xué),理學(xué)院資料_第3頁
Java圖形用戶界面設(shè)計(jì)(GUI),遼寧工程技術(shù)大學(xué),理學(xué)院資料_第4頁
Java圖形用戶界面設(shè)計(jì)(GUI),遼寧工程技術(shù)大學(xué),理學(xué)院資料_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

成績遼寧工程技術(shù)大學(xué)上機(jī)實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱Java圖形用戶界面設(shè)計(jì)(GUI)院系理學(xué)院專業(yè)理科實(shí)驗(yàn)班班級(jí)理科13-1班姓名學(xué)號(hào)日期2015.5.6實(shí)驗(yàn)?zāi)康暮喪霰敬螌?shí)驗(yàn)?zāi)康模?.掌握J(rèn)ava圖形組件和布局管理器的使用。2.理解和掌握J(rèn)ava事件處理機(jī)制的使用。3.掌握?qǐng)D形界面的各種常用控件的使用。4.掌握常用對(duì)話框的使用。實(shí)驗(yàn)準(zhǔn)備我查閱了大量的資料和信息,并與同學(xué)們進(jìn)行了激烈的討論。實(shí)驗(yàn)進(jìn)度本次共有4個(gè)練習(xí),完成4個(gè)。實(shí)驗(yàn)總結(jié)日本次實(shí)驗(yàn)的收獲、體會(huì)、經(jīng)驗(yàn)、問題和教訓(xùn):經(jīng)過了本次的實(shí)驗(yàn),使我對(duì)java的開發(fā)環(huán)境和運(yùn)行環(huán)境有了一定的了解。通過這次實(shí)驗(yàn),我收獲很多。在該實(shí)驗(yàn)中,我掌握了Java圖形組件和布局管理器的使用,理解和掌握了Java事件處理機(jī)制的使用,掌握了圖形界面的各種常用控件的使用,掌握了常用對(duì)話框的使用。在自己編程過程中發(fā)現(xiàn)許多錯(cuò)誤,也認(rèn)識(shí)到自己在某些方面還存在不足,需要多多練習(xí)。教師評(píng)語實(shí)驗(yàn)內(nèi)容:(1)設(shè)計(jì)一個(gè)簡易計(jì)算器,在“操作數(shù)”標(biāo)簽右側(cè)的兩個(gè)文本框輸入操作數(shù),當(dāng)單擊“+,-,*,/”按鈕時(shí),對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算并將結(jié)果填到“結(jié)果”標(biāo)簽右側(cè)的文本框中。具體程序如下:importjava.awt.event.*;importjavax.swing.*;classComputeextendsJFrame{ publicCompute(){ finalStringa,b; JFrameCompute=newJFrame("簡單計(jì)算器"); JLabellb1=newJLabel("操作數(shù):"); JLabellb2=newJLabel("操作數(shù):"); JLabellb3=newJLabel("結(jié)果:"); finalJTextFieldtxt1=newJTextField(); a=txt1.getText(); finalJTextFieldtxt2=newJTextField(); b=txt2.getText(); finalJTextFieldtxt3=newJTextField(); JButtonjb1=newJButton("+"); JButtonjb2=newJButton("-"); JButtonjb3=newJButton("*"); JButtonjb4=newJButton("/"); JButtonjb5=newJButton("清除"); Compute.setBounds(100,100,480,215); Compute.setVisible(true); Compute.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Compute.setLayout(null); Compute.add(lb1);Compute.add(lb2);Compute.add(lb3); Compute.add(txt1);Compute.add(txt2);Compute.add(txt3); Compute.add(jb1);Compute.add(jb2);Compute.add(jb3); Compute.add(jb4);Compute.add(jb5); lb1.setBounds(50,40,100,20); lb2.setBounds(50,80,100,20); lb3.setBounds(50,120,100,20); txt1.setBounds(100,40,150,20); txt2.setBounds(100,80,150,20); txt3.setBounds(100,120,150,20); jb1.setBounds(300,30,50,20); jb2.setBounds(300,60,50,20); jb3.setBounds(300,90,50,20); jb4.setBounds(300,120,50,20); jb5.setBounds(375,70,70,30);jb1.addMouseListener(newMouseListener(){ publicvoidmouseClicked(MouseEvente){ doublex=Double.valueOf(txt1.getText()); doubley=Double.valueOf(txt2.getText()); txt3.setText(Double.toString(x+y));} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} });jb2.addMouseListener(newMouseListener(){ publicvoidmouseClicked(MouseEvente){ Doublex=Double.valueOf(txt1.getText()); Doubley=Double.valueOf(txt2.getText()); txt3.setText(Double.toString(x-y));} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){}});jb3.addMouseListener(newMouseListener(){ publicvoidmouseClicked(MouseEvente){ Doublex=Double.valueOf(txt1.getText()); Doubley=Double.valueOf(txt2.getText()); txt3.setText(Double.toString(x*y));} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){}});jb4.addMouseListener(newMouseListener(){ publicvoidmouseClicked(MouseEvente){ Doublex=Double.valueOf(txt1.getText()); Doubley=Double.valueOf(txt2.getText()); txt3.setText(Double.toString(x/y));} publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){}}); jb5.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEventarg0){ txt1.setText("");txt2.setText("");txt3.setText(""); txt1.requestFocus();} });} publicstaticvoidmain(Stringargs[]){ Computecp=newCompute(); }}運(yùn)行結(jié)果如下:如圖所示3.2*4.6=7.8如圖所示22.4/6.2=3.612903225806451編寫文本移動(dòng)程序,窗口中有兩個(gè)文本區(qū)和兩個(gè)按鈕,文本區(qū)分別位于窗口的左邊和右邊區(qū)域,2個(gè)按鈕位于窗口的中間區(qū)域,當(dāng)單擊“→”按鈕時(shí),將左邊文本區(qū)選中的內(nèi)容添加到右側(cè)的文本區(qū)的末尾。當(dāng)單擊“←”按鈕時(shí),將右側(cè)文本區(qū)中選定的內(nèi)容添加到左側(cè)文本區(qū)的末尾。提示:在文本區(qū)中可以使用getSelectedText方法獲得通過鼠標(biāo)拖動(dòng)選定的文本,可以將“→”和“←”按鈕放入Panel組件中,再將Panel組件加入窗口中。具體程序如下:importjava.awt.GridLayout;importjava.awt.event.*;importjavax.swing.*;publicclassMoveTextextendsJFrame{ privatestaticfinallongserialVersionUID=-2971553485612622339L; publicMoveText(){ JFrameMoveText=newJFrame("文本移動(dòng)程序"); JLabellb1=newJLabel("文本區(qū)1:"); JLabellb2=newJLabel("文本區(qū)2:"); finalJTextFieldtxt1=newJTextField(); finalJTextFieldtxt2=newJTextField(); JPanelp=newJPanel(newGridLayout(1,2,10,10)); JButtonjb1=newJButton("→"); JButtonjb2=newJButton("←"); MoveText.setBounds(100,100,600,150); MoveText.setVisible(true); MoveText.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); MoveText.setLayout(null); MoveText.add(lb1); MoveText.add(lb2); MoveText.add(txt1); MoveText.add(txt2); p.add(jb1); p.add(jb2); MoveText.add(p); lb1.setBounds(25,40,100,20); lb2.setBounds(380,40,100,20); txt1.setBounds(80,40,100,20); txt2.setBounds(435,40,100,20); p.setBounds(220,40,125,20); jb1.addMouseListener(newMouseListener() { publicvoidmouseClicked(MouseEvente){ txt2.setText(txt2.getText()+txt1.getSelectedText()); } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} }); jb2.addMouseListener(newMouseListener() { publicvoidmouseClicked(MouseEvente){ txt1.setText(txt1.getText()+txt2.getSelectedText()); } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} }); } publicstaticvoidmain(String[]args){ MoveTextmt=newMoveText(); }}運(yùn)行結(jié)果如下:(3)編寫“背單詞”的程序。系統(tǒng)從詞庫中隨機(jī)抽取英文單詞,通過一個(gè)JLabel組件顯示對(duì)應(yīng)的中文,讓用戶在JTextField組件中輸入英文單詞。如果用戶輸入的英文單詞出錯(cuò),按回車鍵后,系統(tǒng)在另一個(gè)JLabel組件顯示“對(duì)不起!答錯(cuò)了!”,直到用戶輸入的英文單詞,按回車鍵后,系統(tǒng)顯示“恭喜你!答對(duì)了!”。該過程可以持續(xù)進(jìn)行,直到用戶終止程序。(提示:英文詞庫和對(duì)應(yīng)的中文詞庫可以通過字符串?dāng)?shù)組實(shí)現(xiàn)。)具體程序如下:importjava.awt.event.*;importjavax.swing.*;publicclassReciteWordextendsJFrame{ privatestaticfinallongserialVersionUID=578725239074915387L; intm; publicReciteWord(){ Stringword[]={"happy","sad","year","rubbish","useless","movie","war","home","agree","school"}; Stringchinese[]={"高興","難過","年","垃圾","無用","電影","戰(zhàn)爭","家園","同意","學(xué)校"}; intk=(int)(Math.random()*10)%word.length;m=k; JFrameReciteWord=newJFrame("背單詞"); JLabellb1=newJLabel("中文:"+chinese[m]); JLabellb2=newJLabel("英文:"); JLabellb3=newJLabel(); JLabellb4=newJLabel(); JButtonjb1=newJButton("下一個(gè)"); JButtonjb2=newJButton("提示"); finalJTextFieldtxt1=newJTextField(); ReciteWord.setBounds(300,300,400,250); ReciteWord.setVisible(true); ReciteWord.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ReciteWord.setLayout(null);ReciteWord.add(lb1);ReciteWord.add(lb2); ReciteWord.add(lb3);ReciteWord.add(lb4);ReciteWord.add(jb1); ReciteWord.add(jb2);ReciteWord.add(txt1); lb1.setBounds(40,40,100,20);lb2.setBounds(40,80,100,20); lb3.setBounds(40,120,200,20);lb4.setBounds(40,160,200,20); txt1.setBounds(80,80,100,20); jb1.setBounds(250,40,80,20);jb2.setBounds(250,80,80,20); jb1.addMouseListener(newMouseListener() { publicvoidmouseClicked(MouseEvente){ intk=(int)(Math.random()*10)%word.length;m=k; lb1.setText("中文:"+chinese[m]); txt1.setText("");lb3.setText("");lb4.setText(""); } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} }); jb2.addMouseListener(newMouseListener() { publicvoidmouseClicked(MouseEvente){ lb4.setText("提示:"+word[m]); } publicvoidmousePressed(MouseEvente){} publicvoidmouseReleased(MouseEvente){} publicvoidmouseEntered(MouseEvente){} publicvoidmouseExited(MouseEvente){} }); txt1.addKeyListener(newKeyListener(){publicvoidkeyPressed(KeyEvente){intkeyCode=e.getKeyCode();if(keyCode==KeyEvent.VK_ENTER){if(txt1.getText().toLowerCase().equalsIgnoreCase(word[m])){ lb3.setText("恭喜你!答對(duì)了!"); } else{lb3.setText("對(duì)不起!答錯(cuò)了!"); txt1.setText("");}}} publicvoidkeyTyped(KeyEvente){} publicvoidkeyReleased(KeyEvente){ }});} publicstaticvoidmain(String[]args){ ReciteWordrw=newReciteWord(); }}運(yùn)行結(jié)果如下:附加:編寫一個(gè)簡單的個(gè)人簡歷錄入程序??梢酝ㄟ^文本行輸入姓名,通過單選按鈕選擇性別,通過組合框選擇籍貫和文化程度,并在文本框中顯示所填寫及選擇的信息。具體程序如下:importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.*;importjavax.swing.event.ListDataListener;publicclassResumeextendsJFrame{ privatestaticfinallongserialVersionUID=-9221908327421520585L; JComboBox<String>jc1=newJComboBox<String>(newMyComboBox1()); JComboBox<String>jc2=newJComboBox<String>(newMyComboBox2()); publicResume(){ JFrameresume=newJFrame(); resume.setBounds(300,150,470,500); resume.setTitle("個(gè)人簡歷錄入程序"); resume.setVisible(true);resume.setLayout(null); resume.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); JLabellb1=newJLabel("姓名:"); JLabellb2=newJLabel("性別:"); JLabellb3=newJLabel("籍貫:"); JLabellb4=newJLabel("文化程度:"); JLabellb5=newJLabel("此人信息如下所示:"); JTextFieldtxt1=newJTextField(); finalJTextAreatxt2=newJTextArea(); JButtonjb1=newJButton("保存"); JRadioButtonjrb1=newJRadioButton("男"); JRadioButtonjrb2=newJRadioButton("女"); ButtonGroupgroup=newButtonGroup();group.add(jrb1);group.add(jrb2); resume.add(lb1);resume.add(lb2);resume.add(lb3);resume.add(lb4); resume.add(lb5);resume.add(jrb1);resume.add(jrb2);resume.add(txt1); resume.add(txt2);resume.add(jc1);resume.add(jc2);resume.add(jb1); lb1.setBounds(100,20,50,20);lb2.setBounds(100,60,50,20); lb3.setBounds(100,100,50,20);lb4.setBounds(100,140,80,20); lb5.setBounds(100,220,150,20);jrb1.setBounds(170,60,50,20); jrb2.setBounds(230,60,50,20);txt1.setBounds(170,20,130,20); txt2.setBounds(100,250,250,200);jc1.setBounds(170,100,130,20); jc2.setBounds(170,140,130,20);jb1.setBounds(160,180,80,20); jb1.addActionListener(newActionListener(){ publicvoidactionPerformed(ActionEvente){ Stringa=null;txt2.setLineWrap(true); txt2.setFont(newFont("微軟雅黑",Font.PLAIN,14)); if(jrb1.isSelected())a="男";if(jrb2.isSelected())a="女"; txt2.setText("姓名:"+txt1.getText()+'\n'+"性別:"+ a+'\n'+"籍貫:"+ jc1.getSelectedItem()+'\n'+"文化程度:"+jc2.getSelectedItem()); }});}

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論