java課程設計--復雜計算器的設計_第1頁
已閱讀1頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  Java編程設計論文</p><p>  題目 :java 課 程 設 計</p><p><b>  目錄</b></p><p><b>  一 緒論 4</b></p><p><b>  二 設計思路 4</b></p><

2、p>  2.1 工作原理圖 ................................................................... ...........4</p><p>  2.2 功能規(guī)劃 ...................................................................................5</p&

3、gt;<p><b>  三 具體實現(xiàn) 5</b></p><p>  3.1 類設計與功能實現(xiàn).....................................................................5</p><p>  3.2 界面 .........................................

4、..................................................5</p><p>  四 運行調試與分析討論 9</p><p>  4.1 運行屏幕截圖與分析 ...............................................................9</p><p>  4.2 改進想法

5、 .................................................................................12</p><p>  五 設計體會與小結 12</p><p><b>  六 參考文獻12</b></p><p><b>  七 附錄 13</b>

6、;</p><p><b>  題目內容及要求:</b></p><p>  我選擇的是“復雜計算器的設計”,其目的主要是因為Windows里有計算器,可以參照那個模板,并且對界面很熟悉,做起來更得心應手。其次,我對鏈接數(shù)據(jù)庫還不太熟練,計算器可以由代碼直接生成,更符合我的知識水平。</p><p>  設計一個圖形界面(GUI)的復雜計算器應

7、用程序,其組件包括0~9,+、-、*、/、C=按鈕,顯示屏文本行和菜單。其功能完成簡單的加法、減法、乘法、除法算術運算,具有進制轉換功能,能關閉窗口,點擊按鈕或鍵盤數(shù)字會在現(xiàn)實屏上輸出結果。在計算器的界面上小數(shù)點、正負號、求倒數(shù)、退格和清零按鈕要實現(xiàn)其功能</p><p>  練習使用布局管理器設計一個計算器的界面,并練習使用事件監(jiān)聽器處理數(shù)據(jù)的輸入,并完成相關的計算。</p><p> 

8、 在我的計算器上實現(xiàn)了以上要求的基本功能,其界面參照系統(tǒng)的計算器。選中菜單項“查看”中的“標準型”菜單子項,可以實現(xiàn)其加減乘除基本運算,選中“科學型“可以實現(xiàn)進制之間的轉換。在菜單項條中也設置了“編輯”,“幫助”等菜單項,點擊相關按鈕可實現(xiàn)相關其功能。</p><p><b>  設計思路</b></p><p><b>  2.1工作原理圖:</b&

9、gt;</p><p><b>  2.2功能規(guī)劃:</b></p><p>  在本程序中主要有四個類,分別是 Jisuanqi , Computepad ,NumberButton,OperationButton,其主類是Jisuanqi。主類Jisuanqi主要實現(xiàn)二,八,十 ,十六之間進制轉換,但不能實現(xiàn)加減乘除基本運算。</p><p&g

10、t;  Computepad類,在此類中主要實現(xiàn)“查看”中的“標準型”,即實現(xiàn)十進制的加減乘除基本運算。在此類中記入NumberButton,OperationButton類,簡化程序。</p><p>  在菜單條中設置了“編輯”,“查看”“幫助”等菜單項,“編輯”中可實現(xiàn)“復制”“粘帖”功能,在“查看”中可以選擇“科學型”“標準型”在“幫助”中實現(xiàn)“關于計算器”“作者主頁”點擊相關按鈕可實現(xiàn)相關其功能。<

11、;/p><p><b>  具體實現(xiàn)</b></p><p>  3.1類設計及功能實現(xiàn):</p><p>  主類Jisuanqi,即是“查看”中的科學性,主要實現(xiàn)二,八,十,十六之間進制轉換,但不能實現(xiàn)加減乘除基本運算。</p><p>  引入的包有:package my;</p><p>  

12、import javax.swing.*; </p><p>  import javax.swing.event.*; </p><p>  import java.awt.*; </p><p>  import java.awt.event.*;</p><p>  3.2 界面如下:</p><p><

13、b>  圖3.1</b></p><p>  界面設計思路:創(chuàng)建容器cp,創(chuàng)建3個面板cp1,cp2,cp3并加入到cp中,三個面板按照邊緣布局,cp.add(cp1,"North"); cp.add(cp2,"Center"); </p><p>  cp.add(cp3,"South");在cp1中放置文本框

14、,在cp2中放置進制和C,CE,Backspace按鈕,剩余的放置在cp3中。</p><p>  功能設計思路:先獲取點擊或者輸入的數(shù)字,再將其轉換成十進制。代碼如下:</p><p>  int jin=10;</p><p>  String hex=text.getText(); </p><p>  int inthex=Integ

15、er.parseInt(hex,jin);//先把數(shù)變?yōu)?0進制 </p><p>  text.setText(convert.decHex(inthex));</p><p>  再將十進制轉換成相應進制。代碼如下:例</p><p>  String strDecNum = Integer.toString(decNum); //10 </p>

16、<p>  for (int i = strDecNum.length(); i < 3; i++) </p><p><b>  { </b></p><p>  strDecNum = "0" + strDecNum; </p><p>  } // return strDecNum; </

17、p><p>  return invert (strDecNum, 5); </p><p><b>  }</b></p><p>  String strHexNum = ""; //10 to 16 </p><p>  int currentNum = 0; </p><p

18、>  while (decNum != 0) </p><p><b>  { </b></p><p>  if (decNum > 15) </p><p><b>  { </b></p><p>  currentNum = decNum % 16; </p>&l

19、t;p>  decNum /= 16; </p><p><b>  } </b></p><p><b>  else </b></p><p><b>  { </b></p><p>  currentNum = decNum; </p><p&

20、gt;  decNum = 0; </p><p><b>  }</b></p><p>  選中相應的進制后,鍵盤上數(shù)字會有相應的顯示和隱藏,例如,在選中十進制后,A,B,C,D,E,F就會隱藏。代碼如下: (部分)</p><p>  aa.setEnabled(false); //A </p><p>  bb.

21、setEnabled(false); //B</p><p>  在菜單條中設置了“編輯”,“查看”“幫助”等菜單項,“編輯”中可實現(xiàn)“復制”“粘帖”功能,在“查看”中可以選擇“科學型”“標準型”在“幫助”中實現(xiàn)“關于計算器”“作者主頁”點擊相關按鈕可實現(xiàn)相關其功能。代碼如下:(一部分)</p><p>  if(temp==copy) </p><p>  { c

22、opycontent = text.getText(); </p><p><b>  } </b></p><p>  if(temp==about) </p><p><b>  { </b></p><p>  JOptionPane.showMessageDialog(frame,"

23、; Java計算器 孫丹丹","關于計算器",JOptionPane.INFORMATION_MESSAGE); ; </p><p><b>  } </b></p><p>  if(temp==me) </p><p><b>  { </b></p><p>&

24、lt;b>  try </b></p><p><b>  { </b></p><p>  Process p = Runtime.getRuntime().exec("explorer http://www.baidu.com"); </p><p>  } catch(Exception eeee)

25、</p><p>  實現(xiàn)關閉窗口函數(shù),代碼如下:</p><p>  class WindowDestroyer extends WindowAdapter </p><p>  {//退出窗口動作 </p><p>  public void windowClosing(WindowEvent e) </p><p&g

26、t;<b>  { </b></p><p>  System.exit(0); </p><p><b>  實現(xiàn)正負號的轉換:</b></p><p>  if (isNumber == true) //如果當前字符串首字母有'-'號,代表現(xiàn)在是個負數(shù),再按下時,則將首符號去掉 </p>

27、<p><b>  { </b></p><p>  if (s.charAt(0) == '-') </p><p><b>  { </b></p><p>  text.setText("");</p><p>  對窗體事件進行監(jiān)聽,在監(jiān)聽者的w

28、indowClosing方法中實現(xiàn)窗口的關閉處理。在處理窗體的“關閉”事件的監(jiān)聽者則采用繼承WindowAdapter的方式。</p><p>  class closeW extends WindowAdapter//關閉窗口功能</p><p>  {public void windowClosing(WindowEvent e)</p><p>  {Syst

29、em.exit(0);}</p><p>  Computepad類,在此類中主要實現(xiàn)“查看”中的“標準型”,即實現(xiàn)十進制的加減乘除基本運算。</p><p>  引入的包:package my;</p><p>  import java.awt.*;</p><p>  import java.awt.event.*;</p&

30、gt;<p>  import javax.swing.*;</p><p>  import javax.swing.border.*;</p><p>  import my.Jisuanqi.WindowDestroyer;</p><p>  import java.util.LinkedList;</p><p>  

31、import java.text.NumberFormat;</p><p><b>  界面如下:</b></p><p><b>  圖3.2</b></p><p>  界面設計思路:,一開始先把圖形界面的布局考慮好。首先是計算機顯示輸入及輸出的文本框:JTextField field=new JTextField(

32、17);//定義最上面那個框,括號里的數(shù)字是框的長度</p><p>  界面采用邊緣布局,panel.setLayout(new GridLayout(4,5));四行五列排放。設計比較簡單。</p><p>  功能設計思路:次程序借助鏈表存儲數(shù)據(jù)及符號。并運用了NumberButton類來定義按鈕上的數(shù)字,OperationButton類來定義按鈕上的符號,先獲取按鈕上的數(shù)字,代碼如

33、下:</p><p>  if(e.getSource() instanceof NumberButton)</p><p><b>  {</b></p><p>  NumberButton b=(NumberButton)e.getSource();</p><p>  if(鏈表.size()==0)</p

34、><p><b>  {</b></p><p>  int number=b.getNumber(); //獲取按鈕上的數(shù)字</p><p>  鏈表.add(" "+number);</p><p>  resultShow.setText(" "+number);<

35、;/p><p>  是否按下等號=false;</p><p>  在鏈表中根據(jù)鏈表的長度和是否按下等號來判斷是輸出數(shù)字還是進行結算,代碼如下: else if (e.getSource()==等號按鈕)</p><p><b>  {</b></p><p>  是否按下等號=true;</p>

36、;<p>  if(鏈表.size()==1||鏈表.size()==2)</p><p><b>  {</b></p><p>  String num=(String)鏈表.getFirst();</p><p>  resultShow.setText(""+num);}</p><

37、p>  如果按下等號切鏈表長度為3,則取中間的為運算符號,代碼如下:</p><p>  else if(鏈表.size()==3)</p><p><b>  {</b></p><p>  String number1=(String)鏈表.getFirst();</p><p>  String number

38、2=(String)鏈表.getLast();</p><p>  String 運算符號=(String)鏈表.get(1);</p><p>  進行加減乘除運算時判斷符號類型,并返回計算后的數(shù)值。(部分代碼)</p><p>  if(運算符號.equals("+"))</p><p><b>  {<

39、;/b></p><p><b>  n=n1+n2;</b></p><p><b>  }</b></p><p>  else if(運算符號.equals("/"))</p><p><b>  {</b></p><p&g

40、t;<b>  n=n1/n2;</b></p><p><b>  }</b></p><p>  resultShow.setText(""+n);</p><p>  菜單條中的設置和方法也主類一致.</p><p>  在實現(xiàn)“科學型”與“標準型”之間的轉換時應用的代碼:

41、</p><p>  標準型.addActionListener(//標準型和科學型進行切換</p><p>  new ActionListener(){</p><p>  public void actionPerformed(ActionEvent e){//處理事件</p><p>  new ComputerPad();//生成一

42、個科學計算機的對象 就會出現(xiàn)科學計算器的窗口</p><p><b>  exit();</b></p><p> ?。?)NumberButton,OperationButton類主要是實現(xiàn)獲取數(shù)字鍵上的數(shù)字和符號鍵上的符號,并返回按鈕上的字符,用for循環(huán)直接可定義10個數(shù)字和4個運算符號,可以簡化程序。</p><p>  for (

43、int i=0;i<4;i++)</p><p><b>  {</b></p><p>  operationButton[i]=new OperationButton(運算符號[i]);</p><p>  operationButton[i].addActionListener(this);</p><p>

44、<b>  }</b></p><p>  四.運行調試與分析討論</p><p>  4.1 運行屏幕截圖與分析:</p><p>  1.運行主類后,進行運算,首先選中十進制,并從鍵盤上輸入445后,如圖:</p><p><b>  圖4.1</b></p><p> 

45、 2.在將其轉換成十六進制,選中十六進制后,如圖顯示:</p><p><b>  圖4.2</b></p><p>  3.當選中十六進制后,鍵盤上的數(shù)字全部顯示。經計算后校對結果準確。在選中八進制后,如圖顯示:</p><p><b>  圖4.3</b></p><p>  4.經計算后校對結

46、果準確。在選中二進制后,如圖顯示:</p><p><b>  圖4.4</b></p><p>  5.經計算后校對結果準確。在點擊正負號后,如圖顯示:</p><p><b>  圖4.5</b></p><p>  6.由于原來得到的是正數(shù),點擊正負號后,變成負數(shù)。既主類實現(xiàn)了進制的轉換,并且

47、計算無誤,測試成功。點擊“編輯”則出現(xiàn)“復制 ”“粘帖”功能均可實現(xiàn)。當點擊“幫助”后出現(xiàn)“關于計算器”和“作者主頁”,當點擊“作者主頁”后,聯(lián)網可進入baidu主頁。當點擊“關于計算器”后,彈出對話框。如圖:</p><p><b>  圖4.6</b></p><p>  7.點擊“查看”下的“標準型”就可以進入下一個十進制計算頁面。如圖:輸入了“1.9”“+”“

48、3”按下“=”后:</p><p><b>  圖4.7</b></p><p>  8.在按下“1/x”后,顯示如圖:</p><p><b>  圖4.8</b></p><p>  9.當點擊“退格”后,顯示如圖:</p><p><b>  圖4.9<

49、/b></p><p>  當按下“/”“0”后,則返回初值“0”。即測試成功。</p><p><b>  4.2 改進想法:</b></p><p>  倆個計算器布局方式相同,顯示不太相同,“科學型”的比“標準型”的更好看一點,可以改一下。在“標準型”中只能實現(xiàn)+,-,×,/和1/x運算,可以再添加sin,cos,tan,

50、cot等運算,增強實用型。</p><p><b>  五.設計體會與小結</b></p><p>  大約一個星期的編寫JAVA程序,發(fā)現(xiàn)自己不懂的地方很多,在做這個課程設計之前,我可以獨立編寫一些小程序,還很有成就感,以為自己的java語言水平還可以。但是在完成這個設計的時候,我總是被一些小的,細的問題擋住前進的步伐,讓我總是為了解決一個小問題而花費很長的時間,甚

51、至做到晚上二點多鐘,最好猛然發(fā)現(xiàn)自己缺少一個定義或者還要查閱其他的書籍才能找出解決的辦法。例如,我定義了一個鏈表,可是向里面添加東西的時候,總是出錯,后來在上機的時候問老師,才知道鏈表沒有初始化,這是自己的粗心造成的。我在做設計的過程中發(fā)現(xiàn)有很多東西,我都還不知道。在做進制轉換時不知道函數(shù)怎么寫,是我上網查到的,再經過修改查到我的程序中。其實在用語言來編程的時候,基礎是一個不可缺少的知識,但是往往一些核心的高層次的東西更是不可缺少。&l

52、t;/p><p>  在這次編程中,更加深我對事件監(jiān)聽,各方法的實現(xiàn)功能,還有布局方式及常用的GUI標準組件更深刻的認識。同時,也鞏固了數(shù)據(jù)結構的鏈表的應用。在經過這次課設使我知道在設計的過程中最好學習自己解決問題,無論是通過書籍還是網絡,這樣可以增強自己解決問題的能力,同時加強記憶。任意一次實踐都是在檢驗自己學習的水平,也是強迫自己再提高編程水平。</p><p><b>  六.

53、參考文獻</b></p><p>  [1]丁振凡 .Java語言實用教程[M]. 北京郵電大學出版社2006.9 </p><p>  [2]丁振凡 .Java語言實用教程實驗指導[M]. 北京郵電大學出版社. 2006.9</p><p>  [3]嚴蔚敏.數(shù)據(jù)結構(c語言版).清華大學出版社.2008.3</p><p>

54、  [4]耿祥義.Java課程設計.清華大學出版社.2004.1</p><p>  [5]http://cai.ecjtu.jx.cn</p><p><b>  七、附錄:</b></p><p><b>  源程序:</b></p><p> ?。ㄖ黝怞isuanqi)</p>

55、<p>  package my; //把生成的所有class文件保存到一個文件夾里,便于引用。</p><p>  import javax.swing.*; </p><p>  import javax.swing.event.*; </p><p>  import java.awt.*; </p><p>  imp

56、ort java.awt.event.*; </p><p>  public class Jisuanqi extends JFrame implements ActionListener </p><p><b>  {</b></p><p>  JFrame frame; </p><p>  JButton d

57、eng=new JButton("="); //定義按鈕</p><p>  JButton fu=new JButton("+/-"); </p><p>  JButton aa=new JButton("A"); </p><p>  JButton bb=new JButton("B&q

58、uot;); </p><p>  JButton cc=new JButton("C"); </p><p>  JButton dd=new JButton("D"); </p><p>  JButton ee=new JButton("E"); </p><p>  JBut

59、ton ff=new JButton("F"); </p><p>  TextField k1=new TextField(); </p><p>  objConversion convert = new objConversion(); </p><p>  JMenuItem copy,paste,科學型,標準型,help,about,m

60、e; </p><p>  JRadioButton sixteen,ten,eight,two; </p><p>  JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9; </p><p>  Container cp; //容器名為cp</p&g

61、t;<p>  JTextField text; //文本條</p><p>  String copycontent=""; </p><p>  boolean clickable=true,clear=true; //控制符號位</p><p>  int all=0; </p><p>  

62、double qian; </p><p>  String fuhao; </p><p>  int jin=10,first=1; //默認選中十進制</p><p>  public Jisuanqi() //此類的構造函數(shù) </p><p><b>  { </b></p><p> 

63、 super("計算器"); //最上面的起名為計算器</p><p>  setSize(400,300); </p><p>  setLocation(250,200); </p><p>  text=new JTextField(25); //文本框最多可輸入25位數(shù)</p><p>  text.set

64、Text("0."); //默認文本框為0</p><p>  text.setHorizontalAlignment(JTextField.RIGHT);//從右到左 </p><p>  JPanel cp1=new JPanel(); //設置3個面板</p><p>  JPanel cp2=new JPanel(); &

65、lt;/p><p>  JPanel cp3=new JPanel(); </p><p>  cp=getContentPane(); </p><p>  cp.add(cp1,"North"); //界面布局</p><p>  cp.add(cp2,"Center"); </p>

66、<p>  cp.add(cp3,"South"); </p><p>  cp1.setLayout(new GridLayout(1,6)); </p><p>  cp2.setLayout(new GridLayout(2,4)); </p><p>  cp3.setLayout(new GridLayout(6,6)); &

67、lt;/p><p>  sixteen=new JRadioButton("十六進制"); </p><p>  sixteen.setVisible(true); </p><p>  ten=new JRadioButton("十進制",true); </p><p>  ten.setVisible(

68、true); </p><p>  eight=new JRadioButton("八進制"); </p><p>  eight.setVisible(true); </p><p>  two=new JRadioButton("二進制"); </p><p>  two.setVisible(tr

69、ue); </p><p>  sixteen.addActionListener(this); //事件監(jiān)聽者</p><p>  ten.addActionListener(this); </p><p>  eight.addActionListener(this); </p><p>  two.addActionListener(t

70、his); </p><p>  ButtonGroup btg=new ButtonGroup(); </p><p>  btg.add(sixteen); </p><p>  btg.add(ten); </p><p>  btg.add(eight); </p><p>  btg.add(two); &l

71、t;/p><p>  JTextField t3=new JTextField(25); //向各個面板中添加按鈕</p><p>  cp1.add(text); </p><p>  text.setEditable(true); </p><p>  text.setBackground(new Color(255, 255, 255));

72、 </p><p>  cp2.add(sixteen); </p><p>  cp2.add(ten); </p><p>  cp2.add(eight); </p><p>  cp2.add(two); </p><p>  backspace=new JButton("Backspace"

73、;); </p><p>  backspace.setForeground(new Color(255,0,0)); </p><p>  backspace.addActionListener(this); </p><p>  ce=new JButton("CE"); </p><p>  ce.setForegr

74、ound(new Color(255,0,0)); </p><p>  ce.addActionListener(this); </p><p>  c=new JButton("C"); </p><p>  c.setForeground(new Color(255,0,0)); </p><p>  c.addAc

75、tionListener(this); </p><p>  k1.setVisible(false); </p><p>  cp2.add(k1); </p><p>  cp2.add(backspace); </p><p>  cp2.add(ce); </p><p>  cp2.add(c); </

76、p><p>  num0=new JButton("0"); </p><p>  num1=new JButton("1"); </p><p>  num2=new JButton("2"); </p><p>  num3=new JButton("3"); &

77、lt;/p><p>  num4=new JButton("4"); </p><p>  num5=new JButton("5"); </p><p>  num6=new JButton("6"); </p><p>  num7=new JButton("7"

78、); </p><p>  num8=new JButton("8"); </p><p>  num9=new JButton("9"); </p><p>  cp3.add(num7); </p><p>  num7.addActionListener(this); //數(shù)字事件監(jiān)聽者,以獲取按

79、鈕上的數(shù)字</p><p>  cp3.add(num8); </p><p>  num8.addActionListener(this); </p><p>  cp3.add(num9); </p><p>  num9.addActionListener(this); </p><p>  cp3.add(nu

80、m4); </p><p>  num4.addActionListener(this); </p><p>  cp3.add(num5); </p><p>  num5.addActionListener(this); </p><p>  cp3.add(num6); </p><p>  num6.addAc

81、tionListener(this); </p><p>  cp3.add(num1); </p><p>  num1.addActionListener(this); </p><p>  cp3.add(num2); </p><p>  num2.addActionListener(this); </p><p&

82、gt;  cp3.add(num3); </p><p>  num3.addActionListener(this); </p><p>  cp3.add(num0); </p><p>  num0.addActionListener(this); </p><p>  cp3.add(fu); </p><p>

83、;  fu.addActionListener(this); </p><p>  cp3.add(deng); </p><p>  deng.setForeground(new Color(255,0,0)); //符號事件監(jiān)聽者</p><p>  deng.addActionListener(this); </p><p>  cp3

84、.add(aa); </p><p>  aa.addActionListener(this); </p><p>  cp3.add(bb); </p><p>  bb.addActionListener(this); </p><p>  cp3.add(cc); </p><p>  cc.addActionL

85、istener(this); </p><p>  cp3.add(dd); </p><p>  dd.addActionListener(this); </p><p>  cp3.add(ee); </p><p>  ee.addActionListener(this); </p><p>  cp3.add(

86、ff); </p><p>  ff.addActionListener(this); </p><p>  aa.setVisible(false); </p><p>  bb.setVisible(false); </p><p>  cc.setVisible(false); </p><p>  dd.set

87、Visible(false); </p><p>  ee.setVisible(false); </p><p>  ff.setVisible(false); </p><p>  JMenuBar mainMenu = new JMenuBar(); //菜單條</p><p>  setJMenuBar(mainMenu); <

88、/p><p>  JMenu editMenu = new JMenu("編輯"); </p><p>  JMenu viewMenu = new JMenu("查看"); </p><p>  JMenu helpMenu = new JMenu("幫助"); </p><p>  

89、mainMenu.add(editMenu); </p><p>  mainMenu.add(viewMenu); </p><p>  mainMenu.add(helpMenu); </p><p>  copy = new JMenuItem(" 復制"); </p><p>  paste = new JMenu

90、Item(" 粘貼"); </p><p>  KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK); </p><p>  copy.setAccelerator(copyks);//設置退出菜單選項加上快捷鍵 </p><p>  KeyStroke pa

91、steks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK); </p><p>  paste.setAccelerator(pasteks);//設置退出菜單選項加上快捷鍵 </p><p>  editMenu.add(copy); </p><p>  editMenu.add(paste); <

92、;/p><p>  copy.addActionListener(this); </p><p>  paste.addActionListener(this); </p><p>  標準型=new JMenuItem("標準型");</p><p>  科學型 = new JMenuItem("● 科學型&quo

93、t;); </p><p>  viewMenu.add(標準型); </p><p>  viewMenu.add(科學型); </p><p>  標準型.addActionListener(//標準型和科學型進行切換</p><p>  new ActionListener(){</p><p>  public

94、 void actionPerformed(ActionEvent e){//處理事件</p><p>  new ComputerPad();//生成一個科學計算機的對象 就會出現(xiàn)科學計算器的窗口</p><p>  exit();}}};</p><p>  about = new JMenuItem(" 關于計算器"); </p&

95、gt;<p>  me = new JMenuItem(" 作者主頁"); </p><p>  helpMenu.add(about); </p><p>  helpMenu.add(me); </p><p>  about.addActionListener(this); </p><p>  me.

96、addActionListener(this); </p><p>  addWindowListener(new WindowDestroyer());//結束窗口 </p><p><b>  } </b></p><p>  protected void exit() {</p><p>  // TODO Aut

97、o-generated method stub</p><p>  public void actionPerformed(ActionEvent e) </p><p>  {//響應動作代碼}</p><p>  if(first==1) </p><p>  text.setText(""); </p>

98、<p>  first=0; //第一次把文本框0.清空 </p><p>  Object temp = e.getSource(); </p><p>  sixteen.setVisible(true); </p><p>  ten.setVisible(true); </p><p>  eight.setV

99、isible(true); </p><p>  two.setVisible(true); </p><p>  科學型.setText(" 標準型"); </p><p>  標準型.setText("●科學型"); </p><p>  aa.setVisible(true); </p>

100、;<p>  bb.setVisible(true); </p><p>  cc.setVisible(true); </p><p>  dd.setVisible(true); </p><p>  ee.setVisible(true); </p><p>  ff.setVisible(true); </p>

101、;<p>  aa.setEnabled(false); </p><p>  bb.setEnabled(false); </p><p>  cc.setEnabled(false); </p><p>  dd.setEnabled(false); </p><p>  ee.setEnabled(false); <

102、/p><p>  ff.setEnabled(false); </p><p>  if(temp==copy) //點擊“復制“后執(zhí)行</p><p><b>  { </b></p><p>  copycontent = text.getText(); </p><p><b&

103、gt;  } </b></p><p>  if(temp==paste) //點擊“粘帖”后執(zhí)行</p><p><b>  { </b></p><p>  text.setText(text.getText()+copycontent); </p><p><b>  } </b&

104、gt;</p><p>  if(temp==help) </p><p>  { //打開系統(tǒng)幫助文件 要查資料 </p><p><b>  try </b></p><p><b>  { </b></p><p>  String filePath =

105、 "C:/"; </p><p>  Runtime.getRuntime().exec("cmd.exe /c "+filePath); </p><p><b>  } </b></p><p>  catch(Exception eeee) </p><p><b>

106、;  { </b></p><p>  System.out.println("打開系統(tǒng)的計算器出錯"); </p><p><b>  } </b></p><p><b>  } </b></p><p>  if(temp==about) </p>

107、<p><b>  { </b></p><p>  JOptionPane.showMessageDialog(frame," Java計算器 孫丹丹","關于計算器",JOptionPane.INFORMATION_MESSAGE); ; </p><p><b>  } </b></

108、p><p>  if(temp==me) </p><p><b>  { </b></p><p><b>  try </b></p><p><b>  { </b></p><p>  Process p = Runtime.getRuntime()

109、.exec("explorer http://www.baidu.com"); </p><p><b>  } </b></p><p>  catch(Exception eeee) </p><p><b>  { </b></p><p>  System.out.pri

110、ntln("打開指定網頁出錯"); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  try </b></p><p><b>  { </b></p>&l

111、t;p>  if(temp==sixteen) //十六進制轉換</p><p><b>  { </b></p><p>  String hex=text.getText(); </p><p>  int inthex=Integer.parseInt(hex,jin);//先把數(shù)變?yōu)?0進制 </p><

112、;p>  text.setText(convert.decHex(inthex)) ; </p><p><b>  jin=16; </b></p><p>  aa.setEnabled(true); </p><p>  bb.setEnabled(true); </p><p>  cc.setEnable

113、d(true); </p><p>  dd.setEnabled(true); </p><p>  ee.setEnabled(true); </p><p>  ff.setEnabled(true); </p><p>  num2.setEnabled(true); </p><p>  num3.setEn

114、abled(true); </p><p>  num4.setEnabled(true); </p><p>  num5.setEnabled(true); </p><p>  num6.setEnabled(true); </p><p>  num7.setEnabled(true); </p><p>  

115、num8.setEnabled(true); </p><p>  num9.setEnabled(true); </p><p><b>  } </b></p><p>  if(temp==eight) //八進制轉換</p><p><b>  { </b></p><

116、;p>  String oct =text.getText(); </p><p>  int intoct=Integer.parseInt(oct,jin); </p><p>  text.setText(convert.decOct(intoct)) ; </p><p><b>  jin=8; </b></p>

117、<p>  aa.setEnabled(false); //不顯示</p><p>  bb.setEnabled(false); </p><p>  cc.setEnabled(false); </p><p>  dd.setEnabled(false); </p><p>  ee.setEnabled(false);

118、</p><p>  ff.setEnabled(false); </p><p>  num2.setEnabled(true); </p><p>  num3.setEnabled(true); </p><p>  num4.setEnabled(true); </p><p>  num5.setEnable

119、d(true); </p><p>  num6.setEnabled(true); </p><p>  num7.setEnabled(true); </p><p>  num8.setEnabled(false); </p><p>  num9.setEnabled(false); </p><p><

120、b>  } </b></p><p>  if(temp==two) </p><p><b>  { </b></p><p>  String bin=text.getText(); </p><p>  int intbin=Integer.parseInt(bin,jin); </p>

121、;<p>  text.setText(convert.decBin(intbin)); </p><p><b>  jin=2; </b></p><p>  aa.setEnabled(false); </p><p>  bb.setEnabled(false); </p><p>  cc.set

122、Enabled(false); </p><p>  dd.setEnabled(false); </p><p>  ee.setEnabled(false); </p><p>  ff.setEnabled(false); </p><p>  num2.setEnabled(false); </p><p> 

123、 num3.setEnabled(false); </p><p>  num4.setEnabled(false); </p><p>  num5.setEnabled(false); </p><p>  num6.setEnabled(false); </p><p>  num7.setEnabled(false); </p&

124、gt;<p>  num8.setEnabled(false); </p><p>  num9.setEnabled(false); </p><p><b>  } </b></p><p>  if(temp==ten) </p><p><b>  { </b></p&g

125、t;<p>  String dec=text.getText(); </p><p>  int intdec=Integer.parseInt(dec,jin); </p><p>  text.setText(intdec+""); </p><p><b>  jin=10; </b></p>

126、;<p>  aa.setEnabled(false); </p><p>  bb.setEnabled(false); </p><p>  cc.setEnabled(false); </p><p>  dd.setEnabled(false); </p><p>  ee.setEnabled(false); <

127、/p><p>  ff.setEnabled(false); </p><p>  num2.setEnabled(true); </p><p>  num3.setEnabled(true); </p><p>  num4.setEnabled(true); </p><p>  num5.setEnabled(tr

128、ue); </p><p>  num6.setEnabled(true); </p><p>  num7.setEnabled(true); </p><p>  num8.setEnabled(true); </p><p>  num9.setEnabled(true); </p><p><b> 

129、 } </b></p><p><b>  } </b></p><p>  catch(Exception ee) </p><p><b>  { </b></p><p>  System.out.println("轉換出錯,可能你沒有輸入任何字符"); <

130、;/p><p>  text.setText("轉換出錯"); </p><p>  clear=false; </p><p><b>  } </b></p><p>  if(temp==backspace) //退格 </p><p><b>  {&l

溫馨提示

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

評論

0/150

提交評論