2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩46頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p>  課 程 設(shè) 計(jì)</p><p>  設(shè)計(jì)題目: JAVA語(yǔ)言編寫(xiě)計(jì)算器和文檔編輯器 </p><p>  學(xué)生姓名: </p><p>  學(xué) 號(hào): </p><p>  專(zhuān)業(yè)班級(jí): 電子商務(wù)10-1班

2、 </p><p>  指導(dǎo)教師: </p><p>  2011 年 12 月 12 日</p><p><b>  計(jì)算器制作</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p>

3、;  1、為了加深對(duì)課堂講授內(nèi)容的理解,掌握解決實(shí)際應(yīng)用問(wèn)題時(shí)所應(yīng)具有的查閱資料、技術(shù)標(biāo)準(zhǔn)和規(guī)范,以及軟件編程、調(diào)試等能力,掌握面向?qū)ο蟮木幊趟枷爰癑ava語(yǔ)言程序設(shè)計(jì)的規(guī)律與技巧,為進(jìn)一步學(xué)習(xí)Java高級(jí)應(yīng)用及今后從事專(zhuān)業(yè)工作打下基礎(chǔ)。</p><p>  2、在對(duì)Java程序的調(diào)試過(guò)程中,提高分析程序中出現(xiàn)的錯(cuò)誤和排除這些錯(cuò)誤的能力。通過(guò)上機(jī)實(shí)踐,加深學(xué)生對(duì)計(jì)算機(jī)軟件運(yùn)行環(huán)境,以及對(duì)操作系統(tǒng)與計(jì)算機(jī)語(yǔ)言支持系

4、統(tǒng)相互關(guān)系的了解。</p><p>  3、熟悉Java開(kāi)發(fā)工具,運(yùn)行java應(yīng)用程序和小程序;掌握J(rèn)ava程序的編輯、編譯、運(yùn)行。掌握各種數(shù)據(jù)類(lèi)型及其使用方法;掌握表達(dá)式的組成;理解定義變量的作用,掌握定義變量的方法;掌握各種運(yùn)算符的使用及其優(yōu)先級(jí)控制。學(xué)習(xí)結(jié)構(gòu)化程序設(shè)計(jì)的分支結(jié)構(gòu)及分支語(yǔ)句的使用;學(xué)習(xí)使用結(jié)構(gòu)化程序設(shè)計(jì)的循環(huán)結(jié)構(gòu)及循環(huán)語(yǔ)句的使用;掌握數(shù)組的使用方法,著重掌握二維數(shù)組,編寫(xiě)使用二維數(shù)組的程序;掌

5、握常用字符串類(lèi)、方法。</p><p>  4、學(xué)會(huì)類(lèi)的定義和對(duì)象的使用;封裝、繼承、多態(tài)的應(yīng)用;如何創(chuàng)建包,編譯、運(yùn)行包中的類(lèi);方法的覆蓋和重載;抽象類(lèi)、接口、內(nèi)部類(lèi)的使用。</p><p>  掌握異常處理的使用方法。著重掌握基本的GUI組件;掌握容器布局管理;掌握事件處理機(jī)制。</p><p><b>  二、實(shí)驗(yàn)要求</b></p

6、><p>  計(jì)算器要有GUI界面,用戶(hù)可以輸入所需計(jì)算的數(shù)值,可以進(jìn)行加、減、乘、除四種最基本的運(yùn)算,可以求一個(gè)數(shù)值的平方及倒數(shù),可以進(jìn)行階乘運(yùn)算,要能運(yùn)算小數(shù),并且不會(huì)產(chǎn)生精度損失,在必要情況下,可以進(jìn)行四舍五入的運(yùn)算。允許正負(fù)數(shù)間的運(yùn)算。</p><p><b>  三、實(shí)驗(yàn)內(nèi)容</b></p><p>  通過(guò)創(chuàng)建一個(gè)框架并在框架上加上適當(dāng)

7、的按鈕以及文本框并通過(guò)對(duì)按鈕設(shè)置監(jiān)聽(tīng)器以達(dá)到進(jìn)行運(yùn)算的目的,由于對(duì)java知識(shí)掌握的不多還需要通過(guò)參閱書(shū)本來(lái)完成,我們小組有三個(gè)人,我負(fù)責(zé)做算法部分,其他兩人負(fù)責(zé)界面布局以及監(jiān)聽(tīng)器的設(shè)置。在實(shí)驗(yàn)過(guò)程中,我們共同合作每個(gè)人都參加了所有程序的編寫(xiě)過(guò)程。</p><p><b>  四、實(shí)驗(yàn)步驟</b></p><p>  1、首先要聲明包。主要用到了以下幾個(gè)包:</

8、p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  導(dǎo)入了包之后就可以運(yùn)用包中的類(lèi)了。</p><p><b>  2、創(chuàng)建框架。</b><

9、/p><p>  以下用BorderFrame類(lèi)構(gòu)造frame函數(shù),然后設(shè)置框架的格式為最小化、最大化、關(guān)閉。然后show的作用是顯示該框架。</p><p>  BorderFrame frame = new BorderFrame();</p><p>  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&l

10、t;/p><p>  frame.show();</p><p>  3、編寫(xiě)B(tài)orderFrame類(lèi),定義各個(gè)變量。</p><p>  class BorderFrame extends JFrame implements ActionListener</p><p>  這里要用到ActionListener接口,是下面監(jiān)聽(tīng)器所需要的。&l

11、t;/p><p>  定義變量例如下面代碼:</p><p>  private JButton num0,dao,gen,ss,bac;</p><p>  public double d,d11;</p><p>  public double jieguo;</p><p>  public boolean end

12、=true;</p><p>  而在實(shí)際編寫(xiě)過(guò)程中我是用到一個(gè)定義一個(gè)。</p><p>  4、定義各組件,在框架上加入各種組件。</p><p>  接下來(lái)是定義按鈕num0=new JButton("0");括號(hào)里的即為按鈕顯示的信息。依次再創(chuàng)建23個(gè)按鈕。剛開(kāi)始在BorderFrame()方法里我使用JButton num0=new J

13、Button("0")來(lái)定義按鈕,后來(lái)發(fā)現(xiàn)在actionPerformed方法里不能使用這些按鈕,所以要在BorderFrame這個(gè)類(lèi)中定義,</p><p>  JButton num0;這樣就能被BorderFrame類(lèi)里的所有方法采用而不會(huì)出現(xiàn)未定義的錯(cuò)誤。</p><p>  在布局的時(shí)候?yàn)榱朔乐诡伾珕握{(diào),將按鈕背景顏色設(shè)置為白色,采用setBackground

14、()方法,具體代碼如下:</p><p>  num0.setBackground(Color.white);</p><p>  這樣依次設(shè)置12個(gè)按鈕,其他按鈕仍為默認(rèn)顏色。</p><p>  接著創(chuàng)建buttons面板方法如下:</p><p>  buttons=new JPanel();</p><p> 

15、 接著把所有的按鈕加到buttons面板程序代碼如下:</p><p>  buttons.add(num0);</p><p>  然后依次把所有按鈕加入即可。在布局的時(shí)候采用了setLayout 方式布局具體代碼如下:buttons.setLayout(new GridLayout(6,4,5,5));</p><p>  后面的四個(gè)數(shù)分別是6行4列,間隙的高5

16、寬5。這樣之后布局如下</p><p>  接著編寫(xiě)文本框并將文本域設(shè)置為不可編輯,代碼如下</p><p>  resultText= new JTextField("", 25);</p><p>  resultText.setEnabled(false);</p><p>  然后將文本域加入到text面板中具體代

17、碼如下:</p><p>  JPanel text=new JPanel();</p><p>  text.add(resultText);</p><p>  之后再將面板加入到內(nèi)容窗格布局中具體代碼如下:</p><p>  Container contentPane = getContentPane();</p>&l

18、t;p>  contentPane.add(text, BorderLayout.NORTH);</p><p>  contentPane.add(buttons, BorderLayout.CENTER);</p><p>  在計(jì)算器制作過(guò)程中為了使界面更加人性化,并為使用者提供一些制作信息我們小組特意加入了菜單欄。首先創(chuàng)建菜單欄并將菜單欄加入到框架中具體代碼如下:</p

19、><p>  JMenuBar mainMenu = new JMenuBar();</p><p>  setJMenuBar(mainMenu); </p><p>  接著創(chuàng)建三個(gè)主菜單名字分別為文件、顏色、作者具體代碼如下: </p><p>  JMenu actMenu = new JMenu("文件"); <

20、;/p><p>  JMenu setColorMenu = new JMenu("顏色");</p><p>  JMenu aboutMenu = new JMenu("作者"); </p><p>  mainMenu.add(actMenu);</p><p>  mainMenu.add(setC

21、olorMenu);</p><p>  mainMenu.add(aboutMenu); </p><p>  接下來(lái)分別向各個(gè)主菜單中加入子菜單具體代碼如下</p><p>  tuichu = new JMenuItem("退出"); </p><p>  actMenu.add(tuichu);</p>

22、<p>  banquan = new JMenuItem("版權(quán)"); </p><p>  aboutMenu.add(banquan);</p><p>  chanpin = new JMenuItem("產(chǎn)品信息"); </p><p>  aboutMenu.add(chanpin);</p&g

23、t;<p>  hongse = new JMenuItem("紅色");</p><p>  setColorMenu.add(hongse);</p><p>  lanse = new JMenuItem("藍(lán)色");</p><p>  setColorMenu.add(lanse);</p>

24、<p>  huise = new JMenuItem("灰色");</p><p>  setColorMenu.add(huise);</p><p>  菜單顯示如下圖所示:</p><p><b>  5、創(chuàng)建監(jiān)聽(tīng)器</b></p><p>  每個(gè)按鈕都是事件源,我們對(duì)按鈕設(shè)置

25、監(jiān)聽(tīng)器后,只要該按鈕發(fā)生一個(gè)事件(ActionEvent),listenter對(duì)象就是接到通知。</p><p>  我們?cè)O(shè)置監(jiān)聽(tīng)器的方法如下所示:</p><p>  num9.addActionListener(this);</p><p>  num8.addActionListener(this);</p><p>  num7.ad

26、dActionListener(this);</p><p>  num6.addActionListener(this);</p><p>  num5.addActionListener(this);</p><p>  num4.addActionListener(this);</p><p>  num3.addActionListe

27、ner(this);</p><p>  num2.addActionListener(this);</p><p>  num1.addActionListener(this);</p><p>  num0.addActionListener(this);</p><p>  plu.addActionListener(this);<

28、;/p><p>  min.addActionListener(this);</p><p>  mul.addActionListener(this);</p><p>  div.addActionListener(this);</p><p>  equ.addActionListener(this);</p><p&g

29、t;  cle.addActionListener(this);</p><p>  jiecheng.addActionListener(this);</p><p>  youk.addActionListener(this);</p><p>  dian.addActionListener(this);</p><p>  zf.ad

30、dActionListener(this);</p><p>  dao.addActionListener(this);</p><p>  gen.addActionListener(this);</p><p>  ss.addActionListener(this);</p><p>  bac.addActionListener(t

31、his);</p><p>  在這里,所有的按鈕共享一個(gè)監(jiān)聽(tīng)器對(duì)象。所以在actionPerformed方法中,必須判斷那個(gè)按鈕被按下,即事件源,可以通過(guò)EventObject類(lèi)的getSource方法來(lái)判斷。</p><p>  接著對(duì)菜單也設(shè)置了監(jiān)聽(tīng)器如下:</p><p>  banquan.addActionListener(this);</p>

32、;<p>  zhizuodi.addActionListener(this);</p><p>  hongse.addActionListener(this);</p><p>  lanse.addActionListener(this);</p><p>  huise.addActionListener(this);</p>&

33、lt;p>  tuichu.addActionListener(this);</p><p>  chanpin.addActionListener(this);</p><p>  這樣所有的監(jiān)聽(tīng)器就制作好了。</p><p>  6、編寫(xiě)actionPerformed方法</p><p>  在actionPerformed方法里包

34、括了所有按鈕以及子菜單的點(diǎn)擊事件,包括了所有的算法。</p><p>  首先設(shè)置點(diǎn)banqun菜單后,將會(huì)彈出一個(gè)showConfirmDialo型對(duì)話(huà)框,里面的按鈕是</p><p>  DEFAULT_OPTION類(lèi)型,標(biāo)題是“版權(quán)雷神牌計(jì)算器”,對(duì)話(huà)框里的內(nèi)容是" 劉曉雷 </p><p>  20095406;李偉20095378;周洪芬2009

35、5379 "具體代碼如下:</p><p>  if (source==banquan) </p><p><b>  {</b></p><p>  int selection=JOptionPane.showConfirmDialog(</p><p>  BorderFrame.this,</p&

36、gt;<p>  " 劉曉雷 20095406;李偉20095378;周洪芬20095379 ","版權(quán)雷神牌計(jì)算器",</p><p>  JOptionPane.DEFAULT_OPTION);</p><p><b>  } </b></p><p>  接著編寫(xiě)chanpin菜單

37、即作者信息的事件,當(dāng)點(diǎn)擊作者信息時(shí)會(huì)彈出如下對(duì)話(huà)框:</p><p>  當(dāng)點(diǎn)擊確定后會(huì)彈出另一個(gè)對(duì)話(huà)框如圖:</p><p><b>  代碼如下</b></p><p>  if (source==chanpin) </p><p><b>  {</b></p><p>

38、;  int selection=JOptionPane.showConfirmDialog(</p><p>  BorderFrame.this,</p><p>  " 雷神出品必為精品 ","雷神牌計(jì)算器",</p><p>  JOptionPane.DEFAULT_OPTION);</p>&l

39、t;p><b>  } </b></p><p>  if (source==chanpin) </p><p><b>  {</b></p><p>  int selection=JOptionPane.showConfirmDialog(</p><p>  BorderFrame

40、.this,</p><p>  " 謝謝使用","雷神牌計(jì)算器",</p><p>  JOptionPane.DEFAULT_OPTION);</p><p><b>  }</b></p><p>  可以看出就是將source判斷兩次是否等于chanpin,這樣當(dāng)?shù)谝粋€(gè)對(duì)話(huà)

41、框執(zhí)行完之后就會(huì)彈出第二個(gè)對(duì)話(huà)框以達(dá)到效果。</p><p>  接著設(shè)置tuichu菜單的事件,當(dāng)點(diǎn)擊退出時(shí)會(huì)出現(xiàn)如下對(duì)話(huà)框:</p><p>  如果點(diǎn)擊了確定就會(huì)退出,點(diǎn)擊了撤銷(xiāo)就會(huì)回到原界面代碼如下:</p><p>  if (source==tuichu) </p><p>  { int selection = JOptionP

42、ane.showConfirmDialog(</p><p>  BorderFrame.this,</p><p>  "確定退出么?", "退出?", </p><p>  JOptionPane.OK_CANCEL_OPTION,</p><p>  JOptionPane.WARNING_MES

43、SAGE);</p><p>  if (selection == JOptionPane.OK_OPTION)</p><p><b>  {</b></p><p>  System.exit(5);</p><p><b>  }</b></p><p><b&g

44、t;  }</b></p><p>  System.exit(5)語(yǔ)句就是退出框架的意思,括號(hào)里的可以為任意值,消息類(lèi)型為WARNING_</p><p>  MESSAGE可以看出與上面兩個(gè)對(duì)話(huà)框不同的是對(duì)話(huà)框里有了警告的提示。</p><p>  設(shè)置完之后設(shè)置顏色菜單的事件如下:</p><p>  if (source=

45、=lanse) </p><p>  {buttons.setBackground(Color.blue);</p><p><b>  } </b></p><p>  if (source==hongse) </p><p>  {buttons.setBackground(Color.red);</p&

46、gt;<p><b>  } </b></p><p>  if (source==huise) </p><p>  {buttons.setBackground(Color.lightGray);</p><p><b>  }</b></p><p>  setBackgr

47、ound就是設(shè)置背景顏色的函數(shù),這樣就達(dá)到了改變背景顏色的目的。</p><p>  接下來(lái)就進(jìn)入計(jì)算階段的編寫(xiě)了,</p><p>  首先要達(dá)到點(diǎn)擊數(shù)字按鈕,文本框里會(huì)顯示數(shù)字如下所示:</p><p>  if(source==num0)</p><p>  {t=resultText.getText()+"0";r

48、esultText.setText(t);}</p><p>  if(source==num1)</p><p>  {t=resultText.getText()+"1";resultText.setText(t);}</p><p>  if(source==num2)</p><p>  {t=resultText

49、.getText()+"2";resultText.setText(t);}</p><p>  if(source==num3)</p><p>  {t=resultText.getText()+"3";resultText.setText(t);}</p><p>  if(source==num4)</p>

50、<p>  {t=resultText.getText()+"4";resultText.setText(t);}</p><p>  if(source==num5)</p><p>  {t=resultText.getText()+"5";resultText.setText(t);}</p><p>  

51、if(source==num6)</p><p>  {t=resultText.getText()+"6";resultText.setText(t);}</p><p>  if(source==num7)</p><p>  {t=resultText.getText()+"7";resultText.setText(t

52、);}</p><p>  if(source==num8)</p><p>  {t=resultText.getText()+"8";resultText.setText(t);}</p><p>  if(source==num9)</p><p>  {t=resultText.getText()+"9&

53、quot;;resultText.setText(t);}</p><p>  resultText.getText()就是獲取文本框中的字符串,resultText.setText(t)就是使文本框中顯示字符串t;這樣就可以在文本框中輸入數(shù)字了如下圖所示:</p><p><b>  7、我的算法。</b></p><p>  接下來(lái)進(jìn)行算法

54、的編寫(xiě),算法編寫(xiě)主要是我編寫(xiě)的,這些算法不是一下子就能想出來(lái)的,而是一步步不斷完善而成的,我相信如果有時(shí)間我會(huì)更加完善我的算法的。</p><p><b>  加法的代碼如下:</b></p><p>  if(source==plu) </p><p>  { if(z!=1)</p><p><b>  

55、{c5=1;</b></p><p>  c1=Double.parseDouble(resultText.getText().trim());</p><p>  end=false;z=0;}</p><p><b>  if(z==1)</b></p><p>  {c5=1;c1=jieguo;<

56、;/p><p>  z=0; } }</p><p>  這里z值就是判斷變量用來(lái)判斷=是否執(zhí)行過(guò)的,end就是用來(lái)清空文本框的,c5就是控制變量用來(lái)判斷是否執(zhí)行過(guò)+運(yùn)算。</p><p><b>  =的代碼如下:</b></p><p>  if(source==equ) </p><

57、p>  { if(c10!=0)</p><p><b>  {</b></p><p>  jieguo=1;for(int i=1;i<=c9;i++)</p><p>  jieguo=i*jieguo;</p><p>  t=(""+jieguo);c10=0;</p&g

58、t;<p><b>  }</b></p><p>  if(c5!=0.0) </p><p>  {d=Double.parseDouble(resultText.getText().trim());</p><p>  jieguo=c1+d;</p><p>  t=(&qu

59、ot;"+jieguo);</p><p><b>  c5=0;}</b></p><p>  if(c6!=0.0) </p><p>  {d=Double.parseDouble(resultText.getText().trim());</p><p>  jieguo=c2-d;</p&

60、gt;<p>  t=(""+jieguo);</p><p><b>  c6=0;}</b></p><p>  if(c7!=0.0)</p><p>  {d=Double.parseDouble(resultText.getText().trim());</p><p>  j

61、ieguo=c3*d;</p><p>  t=(""+jieguo);</p><p><b>  c7=0;}</b></p><p>  if(c8!=0.0)</p><p>  {d=Double.parseDouble(resultText.getText().trim());</p

62、><p>  jieguo=c4/d;</p><p>  t=(""+jieguo);</p><p><b>  c8=0;}</b></p><p>  if(c12!=0.0)</p><p>  {d=Double.parseDouble(resultText.getTe

63、xt().trim());</p><p><b>  jieguo=1;</b></p><p>  for(int i=1;i<=d;i++)</p><p>  jieguo=c11*jieguo;</p><p>  t=(""+jieguo);</p><p>

64、<b>  c12=0;}</b></p><p>  end=false;</p><p>  resultText.setText(t);</p><p><b>  z=1;</b></p><p><b>  }</b></p><p>  其中

65、從c5到c8還有c10都是控制變量用來(lái)判斷帶年紀(jì)過(guò)哪一個(gè)運(yùn)算符。</p><p>  用一個(gè)加法來(lái)講解我的流程,點(diǎn)擊順序9+72=+3=</p><p>  首先點(diǎn)擊9這個(gè)按鈕,接著文本框中就會(huì)顯示9,點(diǎn)擊+后因?yàn)閦初值為零,所以就獲取了文本框中的數(shù)值c1=9,然后控制變量c5=1,end=false。文本框中仍然顯示著9。接著進(jìn)行下一個(gè)循環(huán),當(dāng)點(diǎn)擊按鈕時(shí)下一個(gè)循環(huán)才會(huì)進(jìn)行也就是說(shuō)看不到清

66、零過(guò)程,點(diǎn)7按鈕,接著有一個(gè)end=true語(yǔ)句,然后點(diǎn)擊2文本框中顯示72,然后點(diǎn)擊=號(hào),此時(shí)執(zhí)行if語(yǔ)句中的c5!=0,d=72,結(jié)果=81,end=false,z=0,顯示81,當(dāng)點(diǎn)擊+時(shí),c1=jieguo即81,end=false,點(diǎn)擊3繼續(xù)清零,文本框中顯示3,點(diǎn)=,結(jié)果就是84。</p><p>  還有一些其他的運(yùn)算都很簡(jiǎn)單,詳見(jiàn)源代碼。這樣就完成了計(jì)算器的編寫(xiě)。</p><p

67、><b>  五、實(shí)驗(yàn)結(jié)果</b></p><p>  輸入5.2執(zhí)行四舍五入運(yùn)算</p><p><b>  求9+72+3結(jié)果</b></p><p>  點(diǎn)擊9+72=+3=</p><p>  點(diǎn)擊9,點(diǎn)擊完+號(hào)后:</p><p><b>  接著點(diǎn)

68、擊7</b></p><p><b>  點(diǎn)擊2</b></p><p><b>  點(diǎn)擊=</b></p><p><b>  接著點(diǎn)擊+3</b></p><p>  點(diǎn)擊加號(hào)的時(shí)候會(huì)出現(xiàn)清零過(guò)程,接著點(diǎn)擊=</p><p>  這樣就完

69、成了運(yùn)算結(jié)果,</p><p>  點(diǎn)擊四舍五入按鈕后如下:</p><p><b>  文本編輯器</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康模?lt;/b></p><p>  綜合掌握J(rèn)ava編程技巧及Java開(kāi)發(fā)環(huán)境。</p><p><b>  二、實(shí)驗(yàn)要

70、求:</b></p><p>  可以設(shè)置文本的字體、大小、顏色等基本參數(shù),可以讀取計(jì)算機(jī)中TXT文件,可以生成一個(gè)新的TXT文件。其他功能參照windows的文本編輯器。</p><p><b>  三、實(shí)驗(yàn)內(nèi)容</b></p><p>  通過(guò)創(chuàng)建一個(gè)框架并在框架上加上適當(dāng)?shù)牟藛螜谝约拔谋居虿⑼ㄟ^(guò)對(duì)菜單設(shè)置監(jiān)聽(tīng)器以達(dá)到進(jìn)行字體大

71、小顏色的控制,由于對(duì)java知識(shí)掌握的不多還需要通過(guò)參閱書(shū)本來(lái)完成,我們小組有三個(gè)人,我負(fù)責(zé)做算法部分,其他兩人負(fù)責(zé)界面布局以及監(jiān)聽(tīng)器的設(shè)置。在實(shí)驗(yàn)過(guò)程中,我們共同合作每個(gè)人都參加了所有程序的編寫(xiě)過(guò)程。</p><p><b>  四、實(shí)驗(yàn)步驟</b></p><p><b>  1、聲明包</b></p><p>  i

72、mport java.awt.font.*;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p><p>  import javax.swing.*;</p><p>  import java.io.*;</p><p>  其中j

73、ava.io是提供輸入流輸出流控制。</p><p><b>  2、創(chuàng)建框架。</b></p><p>  以下用ListFrame類(lèi)構(gòu)造frame函數(shù),然后設(shè)置框架的格式為最小化、最大化、關(guān)閉。然后show的作用是顯示該框架。</p><p>  ListFrame frame = new ListFrame();</p>&

74、lt;p>  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p>  frame.show();</p><p>  3、編寫(xiě)ListFrame類(lèi),定義各個(gè)變量。</p><p>  class ListFrame extends JFrame implements ActionList

75、ener</p><p>  這里要用到ActionListener接口,是下面監(jiān)聽(tīng)器所需要的。</p><p><b>  定義并初始化如下:</b></p><p>  public String dax[]={"5","10","15","20","

76、;25","30","35","40","..."};</p><p>  定義列表框并初始化:</p><p>  public JComboBox box=new JComboBox(dax);</p><p>  public static final int WIDTH

77、 =500;</p><p>  public static final int HEIGHT = 450;</p><p>  public static final String checkedLabel="You choosed: \nIndex, Course\n";</p><p>  public String t=null;<

78、;/p><p>  public JTextArea myTextArea;</p><p>  private JList courseList;</p><p>  private JPanel listPanel;</p><p>  Dialog tanchu=new Dialog(this);</p><p> 

79、 public Button que=new Button("確定");</p><p>  public JCheckBoxMenuItem toolItem,statusItem ;</p><p>  JLabel tishi=new JLabel("字體大小:");</p><p>  public JMenuIte

80、m jianqie,niantie,fuzhi,banquan,hongse,lanse,huise,heise,tuichu,chengse,luse,shezhi,xinxi;</p><p>  public JMenuItem zhizuodi,songti,heiti,kaiti,lishu,youyuan,dakai,baocun,lingcun,item11,item12,item13;</p

81、><p>  FileDialog open=new FileDialog(this,"打開(kāi)..");</p><p>  FileDialog save=new FileDialog(this,"另存為..",FileDialog.SAVE);</p><p>  int shifulingcun;</p><

82、;p>  JPopupMenu menu;</p><p>  而在實(shí)際編寫(xiě)過(guò)程中我是用到一個(gè)定義一個(gè),而不是一起定義的。</p><p>  4、定義各組件,在框架上加入各種組件。</p><p>  創(chuàng)建文本域,并將文本域加入到滾動(dòng)條中,創(chuàng)建面板,并將帶有文本域的滾動(dòng)條加入到面板中,具體代碼如下:</p><p>  Contain

83、er contentPane = getContentPane();</p><p>  JPanel textPanel = new JPanel();</p><p>  myTextArea = new JTextArea( 21, 43);</p><p>  JScrollPane textScrollPane = new JScrollPane(myTe

84、xtArea);</p><p>  textPanel.add(textScrollPane);</p><p>  contentPane.add(textPanel);</p><p>  創(chuàng)建菜單欄,并創(chuàng)建四個(gè)主菜單,分別為四個(gè)主菜單設(shè)置快捷鍵</p><p>  JMenuBar mainMenu = new JMenuBar();

85、</p><p>  setJMenuBar(mainMenu); </p><p>  JMenu actMenu = new JMenu("文件(A)"); </p><p>  JMenu bianMenu = new JMenu("編輯(B)");</p><p>  JMenu setColo

86、rMenu = new JMenu("顏色(S)");</p><p>  JMenu aboutMenu = new JMenu("作者(C)"); </p><p>  JMenu daxMenu = new JMenu("大小(D)"); </p><p>  JMenu zitMenu = new

87、JMenu("字體(E)"); </p><p>  actMenu.setMnemonic('A');</p><p>  bianMenu.setMnemonic('B');</p><p>  setColorMenu.setMnemonic('S');</p><p>

88、;  aboutMenu.setMnemonic('C');</p><p>  daxMenu.setMnemonic('D');</p><p>  zitMenu.setMnemonic('E');</p><p>  定義子菜單并將子菜單加入到主菜單中并設(shè)置加速器:</p><p>  

89、dakai = new JMenuItem("打開(kāi)(L)"); </p><p>  actMenu.add(dakai);</p><p>  dakai.setAccelerator(KeyStroke.getKeyStroke(</p><p>  KeyEvent.VK_L, InputEvent.CTRL_MASK));</p

90、><p>  lingcun = new JMenuItem("另存為(Y)"); </p><p>  這個(gè)的加速器是Ctrl+L當(dāng)按下Ctrl+L時(shí)就是點(diǎn)擊了該子菜單。</p><p>  actMenu.add(lingcun);</p><p>  創(chuàng)建單選框并將單選框加入到子菜單中:</p>&l

91、t;p>  toolItem = new JCheckBoxMenuItem ("自動(dòng)換行");</p><p>  statusItem = new JCheckBoxMenuItem ("取消自動(dòng)");</p><p>  ButtonGroup group =new ButtonGroup();</p><p> 

92、 group.add(toolItem);</p><p>  group.add(statusItem);</p><p>  optionMenu.add(toolItem);</p><p>  optionMenu.add(statusItem);</p><p>  bianMenu.add(optionMenu);</p&g

93、t;<p>  還有其他的許多子菜單的定義方法如上詳見(jiàn)源代碼。</p><p>  定義三個(gè)子菜單和一個(gè)彈出式菜單,將三個(gè)子菜單加入到彈出菜單中</p><p>  item11=new JMenuItem("復(fù)制");</p><p>  item12=new JMenuItem("粘貼");</p>

94、;<p>  item13=new JMenuItem("剪切");</p><p>  menu=new JPopupMenu();</p><p>  menu.add(item11);</p><p>  menu.add(item12);</p><p>  menu.add(item13);<

95、/p><p><b>  5、設(shè)置鼠標(biāo)右鍵</b></p><p>  當(dāng)點(diǎn)擊鼠標(biāo)右鍵時(shí)彈出菜單:</p><p>  myTextArea.addMouseListener(new MouseAdapter(){ </p><p>  public void mousePressed(MouseEvent

96、 e){</p><p>  if(e.getModifiers()==InputEvent.BUTTON3_MASK)</p><p>  menu.show(myTextArea,e.getX(),e.getY());</p><p><b>  } });</b></p><p><b>  6、設(shè)置監(jiān)

97、聽(tīng)器</b></p><p>  每個(gè)按鈕都是事件源,我們對(duì)按鈕設(shè)置監(jiān)聽(tīng)器后,只要該按鈕發(fā)生一個(gè)事件(ActionEvent),listenter對(duì)象就是接到通知。</p><p>  我們?cè)O(shè)置監(jiān)聽(tīng)器的方法如下所示:</p><p>  lingcun.addActionListener(this);</p><p>  bao

98、cun.addActionListener(this);</p><p>  tuichu.addActionListener(this);</p><p>  dakai.addActionListener(this);</p><p>  banquan.addActionListener(this);</p><p>  xinx

99、i.addActionListener(this);</p><p>  zhizuodi.addActionListener(this);</p><p>  hongse.addActionListener(this);</p><p>  lanse.addActionListener(this);</p><p>

100、;  huise.addActionListener(this);</p><p>  heise.addActionListener(this);</p><p>  chengse.addActionListener(this);</p><p>  luse.addActionListener(this);</p><p>

101、;  zitMenu.addActionListener(this);</p><p>  songti.addActionListener(this);</p><p>  heiti.addActionListener(this);</p><p>  kaiti.addActionListener(this);</p><p>

102、  lishu.addActionListener(this);</p><p>  youyuan.addActionListener(this);</p><p>  daxMenu.addActionListener(this);</p><p>  shezhi.addActionListener(this);</p><p>  j

103、ianqie.addActionListener(this);</p><p>  niantie.addActionListener(this);</p><p>  fuzhi.addActionListener(this);</p><p>  在這里,所有的按鈕共享一個(gè)監(jiān)聽(tīng)器對(duì)象。所以在actionPerformed方法中,必須判斷那個(gè)按鈕被按下,即事件源,

104、可以通過(guò)EventObject類(lèi)的getSource方法來(lái)判斷。接著對(duì)彈出菜單里的子菜單設(shè)置監(jiān)聽(tīng)器:</p><p>  item11.addActionListener(this);</p><p>  item12.addActionListener(this);</p><p>  item13.addActionListener(this);</p&g

105、t;<p>  7、設(shè)置作者菜單里的子菜單的點(diǎn)擊事件。</p><p>  當(dāng)點(diǎn)擊版權(quán)子菜單時(shí),先彈出制作人信息,關(guān)閉對(duì)話(huà)框后,接著彈出感謝提示</p><p>  if (source==banquan) </p><p><b>  {</b></p><p>  int selection=JOpti

106、onPane.showConfirmDialog(</p><p>  ListFrame.this,</p><p>  " 劉曉雷 20095406;李偉20095378;周洪芬20095379 ","版權(quán)",</p><p>  JOptionPane.DEFAULT_OPTION);</p><

107、;p>  } if (source==banquan) </p><p><b>  {</b></p><p>  int selection=JOptionPane.showConfirmDialog(</p><p>  ListFrame.this,</p><p>  " 感謝觀看 &q

108、uot;,"版權(quán)",</p><p>  JOptionPane.DEFAULT_OPTION);</p><p><b>  }</b></p><p>  當(dāng)點(diǎn)擊信息時(shí),彈出提示產(chǎn)品信息對(duì)話(huà)框,代碼如下:</p><p>  if (source==xinxi) </p><p

109、><b>  {</b></p><p>  int selection=JOptionPane.showConfirmDialog(</p><p>  ListFrame.this,</p><p>  " 雷神牌記事本 \n 雷神出品必為精品 ","產(chǎn)品信息",</p><

110、p>  JOptionPane.DEFAULT_OPTION);</p><p><b>  } </b></p><p>  當(dāng)點(diǎn)擊zhizuodi時(shí)會(huì)提示制作地信息,具體代碼如下:</p><p>  if (source==zhizuodi) </p><p><b>  {</b>

111、</p><p>  int selection=JOptionPane.showConfirmDialog(</p><p>  ListFrame.this,</p><p>  "合肥工業(yè)大學(xué)機(jī)房 ","地址",</p><p>  JOptionPane.DEFAULT_OPTION);<

112、/p><p><b>  }</b></p><p>  8、設(shè)置編輯菜單里的子菜單。</p><p>  首先設(shè)置兩個(gè)單選框,這里要用到自動(dòng)換行的函數(shù).setLineWrap(true)就是自動(dòng)換行,當(dāng)參數(shù)改成false時(shí)就不能自動(dòng)換行了。具體代碼如下:</p><p>  if (source==toolItem) &l

113、t;/p><p><b>  {</b></p><p>  myTextArea.setLineWrap(true);</p><p><b>  }</b></p><p>  if (source==statusItem) </p><p><b>  {<

114、/b></p><p>  myTextArea.setLineWrap(false); </p><p><b>  } </b></p><p>  接著設(shè)置剪切,復(fù)制粘貼子菜單要用到.cut().copy().paste()函數(shù),具體代碼如下:</p><p>  if (source==jianqie) &

115、lt;/p><p>  {myTextArea.cut();} </p><p>  if (source==fuzhi) </p><p>  {myTextArea.copy();} </p><p>  if (source==niantie) </p><p>  { myTextA

116、rea.paste();</p><p><b>  }</b></p><p>  9、設(shè)置顏色菜單的下拉菜單</p><p>  這里要用到.setForeground()函數(shù),當(dāng)設(shè)置完之后字的顏色就是后面參數(shù)里的顏色。</p><p>  if (source==hongse) </p><p&

117、gt;  {myTextArea.setForeground(Color.red); } </p><p>  if (source==lanse) </p><p>  {myTextArea.setForeground(Color.blue); } </p><p>  if (source==huise) </p>

118、<p>  {myTextArea.setForeground(Color.gray); } </p><p>  if (source==chengse) </p><p>  {myTextArea.setForeground(Color.orange); } </p><p>  if (source==luse) </

119、p><p>  {myTextArea.setForeground(Color.green); } </p><p>  if (source==heise) </p><p>  {myTextArea.setForeground(Color.black); }</p><p>  10、設(shè)置字體菜單的下拉菜單。</p>

120、<p>  這里一共設(shè)置了五種字體,首先設(shè)置字體要用獲得文本域中的格式用Font f=myTextArea.getFont();就可以獲得,然后在設(shè)置字體格式時(shí)只改變字體其他就可以用f.getStyle(),f.getSize())來(lái)表示。具體代碼如下:</p><p>  if (source==songti) </p><p><b>  { </b>

121、;</p><p>  Font f=myTextArea.getFont();</p><p>  myTextArea.setFont(new Font("宋體",f.getStyle(),f.getSize())); </p><p><b>  } </b></p><p>  if (

122、source==heiti) </p><p><b>  { </b></p><p>  Font f=myTextArea.getFont();</p><p>  myTextArea.setFont(new Font("黑體",f.getStyle(),f.getSize())); </p>&

123、lt;p><b>  } </b></p><p>  if (source==kaiti) </p><p><b>  { </b></p><p>  Font f=myTextArea.getFont();</p><p>  myTextArea.setFont(new

124、Font("楷體",f.getStyle(),f.getSize())); </p><p><b>  } </b></p><p>  if (source==lishu) </p><p><b>  { </b></p><p>  Font f=myT

125、extArea.getFont();</p><p>  myTextArea.setFont(new Font("隸書(shū)",f.getStyle(),f.getSize())); </p><p>  } </p><p>  if (source==youyuan) </p><p>&l

126、t;b>  { </b></p><p>  Font f=myTextArea.getFont();</p><p>  myTextArea.setFont(new Font("幼圓",f.getStyle(),f.getSize())); </p><p><b>  }</b></p&g

127、t;<p>  11、設(shè)置文件下拉菜單里的功能。</p><p>  當(dāng)點(diǎn)擊退出時(shí)會(huì)彈出OK_CANCEL_OPTION形式的對(duì)話(huà)框,如果選擇的是ok就會(huì)退出框架,用到了System.exit(0)函數(shù)。具體代碼如下。</p><p>  if (source==tuichu) </p><p>  { int selection = JOptionP

128、ane.showConfirmDialog(</p><p>  ListFrame.this,</p><p>  "確定退出么?", "退出?", </p><p>  JOptionPane.OK_CANCEL_OPTION,</p><p>  JOptionPane.WARNING_MESSA

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論