版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 課程設(shè)計(jì)報(bào)告</b></p><p> 課程名稱: 面向?qū)ο蠹夹g(shù)課程設(shè)計(jì) </p><p> 設(shè)計(jì)題目: 科學(xué)計(jì)算器 </p><p> 學(xué) 院: 信息科學(xué)與工程學(xué)院 </p><p> 專 業(yè): 計(jì)算機(jī)科學(xué)與技
2、術(shù)(軟件外包)</p><p> 姓 名: 王怡 </p><p> 學(xué) 號(hào): 20101214132 </p><p> 班 級(jí): 計(jì)1001 </p><p> 指導(dǎo)教師: 史桂嫻
3、 </p><p> 二零一二年 六 月 十 日</p><p><b> 設(shè)計(jì)內(nèi)容及要求</b></p><p> 設(shè)計(jì)并實(shí)現(xiàn)類似于Windows系統(tǒng)中“計(jì)算器”的窗口及功能</p><p> 要求:設(shè)計(jì)出如圖所示的圖形界面并且能夠?qū)崿F(xiàn)多種運(yùn)算,且保證運(yùn)算的正確性</p><
4、;p><b> 開發(fā)環(huán)境</b></p><p><b> 設(shè)計(jì)環(huán)境或器材: </b></p><p> 硬件環(huán)境:個(gè)人計(jì)算機(jī) </p><p> 軟件環(huán)境:MyEclipse 集成開發(fā)環(huán)境 Java JCreator Pro;</p><p> 設(shè)計(jì)原理說明:運(yùn)用Applic
5、ation程序。</p><p><b> 設(shè)計(jì)思路</b></p><p> 對(duì)Application運(yùn)用繼承JFrame設(shè)計(jì),類的設(shè)計(jì)構(gòu)造方法利用等</p><p><b> 菜單欄設(shè)計(jì)。</b></p><p> 創(chuàng)建文本域,即為計(jì)算器的屏幕顯示區(qū)域。</p><p
6、> 定義初始化操作,在設(shè)計(jì)界面中添加并加入按鈕控件。</p><p> 統(tǒng)一設(shè)置按鈕的的使用方式。給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開始執(zhí)行那個(gè)按鈕所定義的算法,生成數(shù)據(jù)并顯示。</p><p> 調(diào)用java類中的Math函數(shù)庫以及各種串的操作,像是計(jì)算器的基礎(chǔ)操作(+ - × ÷)。</p><p>
7、用ActionEvent對(duì)象的getActionCommand()方法, 取得與引發(fā)事件對(duì)象相關(guān)的字 符串:寫入平方根sqrt、百分號(hào)%、倒數(shù)1/x,sin,cos,tan的計(jì)算公式。</p><p> 注冊(cè)按鈕事件監(jiān)聽器。</p><p><b> 算法的流程圖</b></p><p><b> 詳細(xì)設(shè)計(jì)過程與
8、分析</b></p><p><b> 1、界面設(shè)計(jì)</b></p><p> 設(shè)置內(nèi)容網(wǎng)格布局BorderLayout,創(chuàng)建菜單欄和文本區(qū),創(chuàng)建單選按鈕,默認(rèn)選中,添加按鈕并加入按鈕,統(tǒng)一設(shè)置按鈕的使用方式。整體布局是一個(gè)BorderLayout,其中第一行的按鈕、下面的按鈕都是BorderLayout,四部分按鈕是GridLayout,然后將四部分
9、的按鈕加入到BorderLayout,再將這個(gè)BorderLayout以及結(jié)果輸出框、版權(quán)信息加入到最大的BorderLayout。</p><p> 2、給各個(gè)按鈕進(jìn)行算法,利用鼠標(biāo)點(diǎn)擊事件,當(dāng)鼠標(biāo)點(diǎn)擊某個(gè)按鈕時(shí)就開始執(zhí)行那個(gè)按鈕所定義的算法,生成數(shù)據(jù)并顯示。</p><p> 3、添加動(dòng)作監(jiān)聽事件:添加數(shù)字監(jiān)聽,運(yùn)算符號(hào)事件的監(jiān)聽,清除按鈕的事件監(jiān)聽,小數(shù)點(diǎn)的事件監(jiān)聽。privat
10、e void addButton(JPanel panel, String name, ActionListener action語句實(shí)現(xiàn)了ActionListener接口,因此可以調(diào)用addActionListener(this)方法對(duì)按鈕進(jìn)行點(diǎn)擊監(jiān)聽,在下面的public void actionPerformed(ActionEvent e) 方法里面對(duì)各個(gè)點(diǎn)擊事件進(jìn)行處理。</p><p> 4、用Act
11、ionEvent對(duì)象的getActionCommand()方法取得與引發(fā)事件對(duì)象相關(guān)的字符串,求平方根,百分比,倒數(shù),sin,cos,tan等函數(shù)。</p><p> 5、對(duì)“查看”添加監(jiān)聽并加入到button組中,public void actionPerformed(ActionEvent e) {</p><p> setVisible(false);</p>&l
12、t;p> new CalculatorSimple().setVisible(true);</p><p> 用setVisible語句對(duì)標(biāo)準(zhǔn)型界面設(shè)置隱藏,默認(rèn)顯示科學(xué)型界面。從而實(shí)現(xiàn)界面的轉(zhuǎn)換。</p><p><b> 源代碼</b></p><p> 1、科學(xué)型計(jì)算器界面</p><p> imp
13、ort java.awt.*;</p><p> import java.awt.event.*;</p><p> import java.text.DecimalFormat;</p><p> import javax.swing.*;</p><p> public class Calculator extends JFram
14、e implements ActionListener {</p><p> private JTextField tf;//創(chuàng)建文本框</p><p> private JPanel panel1, panel2, panel3, panel4;//創(chuàng)建面板容器</p><p> private JMenuBar myBar;//創(chuàng)建一個(gè)水平菜單欄</
15、p><p> private JMenu menu1, menu2, menu3;</p><p> private JMenuItem editItem1, editItem2, help1, help2, help3;</p><p> private JRadioButtonMenuItem seeItem1, seeItem2;//單選框</p>
16、;<p> private JCheckBoxMenuItem seeItem3;//復(fù)選框</p><p> private ButtonGroup itemGroup = new ButtonGroup();</p><p> private ButtonGroup bgb;</p><p> private String back;//字
17、符串返回</p><p> private boolean IfResult = true, flag = false;</p><p> private String oper = "=";</p><p> private double result = 0;</p><p> private Num numA
18、ctionListener;//設(shè)置數(shù)字監(jiān)聽</p><p> private DecimalFormat df;//格式化數(shù)字輸出</p><p> public Calculator(){</p><p> super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄</p><p> df = new DecimalForm
19、at("#.####");//保留四位小數(shù)</p><p> this.setLayout(new BorderLayout(10, 5));</p><p> panel1 = new JPanel(new GridLayout(1, 3, 10, 10));</p><p> panel2 = new JPanel(new GridLa
20、yout(5, 6, 5, 5));//5行6列</p><p> panel3 = new JPanel(new GridLayout(5, 1, 5, 5));</p><p> panel4 = new JPanel(new BorderLayout(5, 5));</p><p><b> /*</b></p>&l
21、t;p><b> * 菜單欄</b></p><p><b> */</b></p><p> myBar = new JMenuBar();</p><p> menu1 = new JMenu("編輯(E)");</p><p> menu2 = new JM
22、enu("查看(V)");</p><p> menu3 = new JMenu("幫助(H)");</p><p> menu1.setFont(new Font("宋體", Font.PLAIN, 12));</p><p> menu2.setFont(new Font("宋體&quo
23、t;, Font.PLAIN, 12));</p><p> menu3.setFont(new Font("宋體", Font.PLAIN, 12));</p><p><b> /*</b></p><p><b> * 編輯欄</b></p><p><b>
24、; */</b></p><p> editItem1 = new JMenuItem("復(fù)制(C) Ctrl+C");</p><p> editItem2 = new JMenuItem("粘貼(P) Ctrl+V");</p><p> editItem1.setFont(new Font("
25、;宋體",Font.PLAIN,12));</p><p> editItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p><b> /*</b></p><p><b> * 查看欄</b></p><p>&
26、lt;b> */</b></p><p> seeItem2= new JRadioButtonMenuItem("標(biāo)準(zhǔn)型");</p><p> seeItem1 = new JRadioButtonMenuItem("科學(xué)型");</p><p> seeItem3 = new JCheckBo
27、xMenuItem("數(shù)字分組(I)");</p><p> seeItem1.addActionListener(this);</p><p> seeItem2.addActionListener(this);</p><p> seeItem1.setSelected(true);</p><p> item
28、Group.add(seeItem1);</p><p> itemGroup.add(seeItem2);</p><p> seeItem2.addActionListener(new ActionListener() {</p><p> public void actionPerformed(ActionEvent e) {</p>&l
29、t;p> setVisible(false);</p><p> new CalculatorSimple().setVisible(true);</p><p><b> }</b></p><p><b> });</b></p><p> seeItem1.setFont(ne
30、w Font("宋體",Font.PLAIN,12));</p><p> seeItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p> seeItem3.setFont(new Font("宋體",Font.PLAIN,12));</p><p>&
31、lt;b> /*</b></p><p><b> * 幫助欄</b></p><p><b> */</b></p><p> help1 = new JMenuItem("幫助主題(H)");</p><p> help2 = new JMenuI
32、tem("關(guān)于計(jì)算器(A)");</p><p> help1.setFont(new Font("宋體",Font.PLAIN,12));</p><p> help2.setFont(new Font("宋體",Font.PLAIN,12));</p><p> bgb = new ButtonG
33、roup();//選項(xiàng)組</p><p> menu1.add(editItem1);</p><p> menu1.add(editItem2);</p><p> menu2.add(seeItem1);</p><p> menu2.add(seeItem2);</p><p> menu2.addSe
34、parator();//添加一條分割線</p><p> menu2.add(seeItem3);</p><p> menu3.add(help1);</p><p> menu3.addSeparator();//添加一條分割線</p><p> menu3.add(help2);</p><p> my
35、Bar.add(menu1);</p><p> myBar.add(menu2);</p><p> myBar.add(menu3);</p><p> this.setJMenuBar(myBar);</p><p> numActionListener = new Num();//實(shí)現(xiàn)數(shù)字監(jiān)聽</p><p
36、><b> /**</b></p><p> * 文本域,即為計(jì)算器的屏幕顯示區(qū)域</p><p><b> */</b></p><p> tf = new JTextField();</p><p> tf.setEditable(false);//文本區(qū)域不可編輯</p&
37、gt;<p> tf.setBackground(Color.white);//文本區(qū)域的背景色</p><p> tf.setHorizontalAlignment(JTextField.RIGHT);//文字右對(duì)齊</p><p> tf.setText("0");</p><p> tf.setBorder(Borde
38、rFactory.createLoweredBevelBorder());</p><p> init();//對(duì)計(jì)算器進(jìn)行初始化</p><p><b> }</b></p><p><b> /**</b></p><p><b> * 初始化操作</b></
39、p><p><b> * 添加按鈕</b></p><p><b> */</b></p><p> private void init(){</p><p> addButton(panel1, "Backspace", new Clear(), Color.red);&l
40、t;/p><p> addButton(panel1, "CE", new Clear(), Color.red);</p><p> addButton(panel1, "C", new Clear(), Color.red);</p><p> addButton(panel2, "1/x", new
41、 Signs(), Color.magenta);</p><p> addButton(panel2, "log", new Signs(), Color.magenta);</p><p> addButton(panel2, "7", numActionListener, Color.blue);</p><p>
42、 addButton(panel2, "8", numActionListener, Color.blue);</p><p> addButton(panel2, "9", numActionListener, Color.blue);</p><p> addButton(panel2, "¡Â", n
43、ew Signs(), Color.red);</p><p> addButton(panel2, "n!", new Signs(), Color.magenta);</p><p> addButton(panel2, "sqrt", new Signs(), Color.magenta);</p><p> ad
44、dButton(panel2, "4", numActionListener, Color.blue);</p><p> addButton(panel2, "5", numActionListener, Color.blue);</p><p> addButton(panel2, "6", numActionListen
45、er, Color.blue);</p><p> addButton(panel2, "¡Á", new Signs(), Color.red);</p><p> addButton(panel2, "sin", new Signs(), Color.magenta);</p><p> addB
46、utton(panel2, "x^2", new Signs(), Color.magenta);</p><p> addButton(panel2, "1", numActionListener, Color.blue);</p><p> addButton(panel2, "2", numActionListener,
47、 Color.blue);</p><p> addButton(panel2, "3", numActionListener, Color.blue);</p><p> addButton(panel2, "-", new Signs(), Color.red);</p><p> addButton(panel2,
48、 "cos", new Signs(), Color.magenta);</p><p> addButton(panel2, "x^3", new Signs(), Color.magenta);</p><p> addButton(panel2, "0", numActionListener, Color.blue);&
49、lt;/p><p> addButton(panel2, "-/+", new Clear(), Color.blue);</p><p> addButton(panel2, ".", new Dot(), Color.blue);</p><p> addButton(panel2, "+", new
50、 Signs(), Color.red);</p><p> addButton(panel2, "tan", new Signs(), Color.magenta);</p><p> addButton(panel2, "%", new Signs(), Color.magenta);</p><p> addBut
51、ton(panel2, "π", numActionListener, Color.orange);</p><p> addButton(panel2, "e", numActionListener, Color.orange);</p><p> addButton(panel2, "`", new Signs(), Co
52、lor.orange);</p><p> addButton(panel2, "=", new Signs(), Color.red);</p><p> JButton btns = new JButton("計(jì)算器");</p><p> btns.setBorder(BorderFactory.createLow
53、eredBevelBorder());</p><p> btns.setEnabled(false);//按鈕不可操作</p><p> btns.setPreferredSize(new Dimension(20, 20));</p><p> panel3.add(btns);//加入按鈕</p><p> addButton(
54、panel3, "MC", null, Color.red);</p><p> addButton(panel3, "MR", null, Color.red);</p><p> addButton(panel3, "MS", null, Color.red);</p><p> addButto
55、n(panel3, "M+", null, Color.red);</p><p> panel4.add(panel1, BorderLayout.NORTH);</p><p> panel4.add(panel2, BorderLayout.CENTER);</p><p> this.add(tf, BorderLayout.NOR
56、TH);</p><p> this.add(panel3, BorderLayout.WEST);</p><p> this.add(panel4);</p><p> pack();//調(diào)整此窗口的大小,以適合其子組件的首選大小和布局</p><p> this.setResizable(false);//窗口不可改變大小<
57、;/p><p> this.setLocation(500, 200);//將組件移到新位置</p><p> this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);</p><p><b> }</b></p><p><b> /**</b>
58、</p><p> * 統(tǒng)一設(shè)置按鈕的的使用方式</p><p> * @param panel</p><p> * @param name</p><p> * @param action</p><p> * @param color</p><p><b> */&
59、lt;/b></p><p> private void addButton(JPanel panel, String name, ActionListener action, Color color){</p><p> JButton bt = new JButton(name);</p><p> panel.add(bt);//在面板上增加按鈕&
60、lt;/p><p> bt.setForeground(color);//設(shè)置前景(字體)顏色</p><p> bt.addActionListener(action);//增加監(jiān)聽事件</p><p><b> }</b></p><p><b> /**</b></p>&l
61、t;p> * 計(jì)算器的基礎(chǔ)操作(+ - ¡Á ¡Â)</p><p> * @param x</p><p><b> */</b></p><p> private void getResult (double x){</p><p> if(oper == &q
62、uot;+"){result += x;}</p><p> else if(oper == "-"){result -= x;}</p><p> else if(oper == "¡Á"){result *= x;}</p><p> else if(oper == "
63、1;Â"){result /= x;}</p><p> else if(oper == "="){result = x;}</p><p> tf.setText(df.format(result));</p><p><b> }</b></p><p><b>
64、; /**</b></p><p> * 運(yùn)算符號(hào)的事件監(jiān)聽</p><p><b> */</b></p><p> class Signs implements ActionListener{</p><p> public void actionPerformed(ActionEvent e)
65、 {</p><p><b> /*</b></p><p> * 用ActionEvent對(duì)象的getActionCommand()方法</p><p> * 取得與引發(fā)事件對(duì)象相關(guān)的字符串</p><p><b> */</b></p><p> String
66、str = e.getActionCommand();</p><p> /* sqrt求平方根 */</p><p> if(str.equals("sqrt")){</p><p> double i = Double.parseDouble(tf.getText());</p><p><b> i
67、f(i>=0){</b></p><p><b> /*</b></p><p> * String.valueOf() 轉(zhuǎn)換為字符串</p><p> * df.format() 按要求保留四位小數(shù)</p><p> * Math.sqrt() 求算數(shù)平方根</p><p&
68、gt;<b> */</b></p><p> tf.setText(String.valueOf(df.format(Math.sqrt(i))));</p><p><b> }</b></p><p><b> else{</b></p><p> tf.set
69、Text("負(fù)數(shù)不能開平方根");</p><p><b> }</b></p><p><b> }</b></p><p> /* log求常用對(duì)數(shù) */</p><p> else if(str.equals("log")){</p>
70、<p> double i = Double.parseDouble(tf.getText());</p><p><b> if(i>0){</b></p><p> tf.setText(String.valueOf(df.format(Math.log(i))));</p><p><b> }els
71、e{</b></p><p> tf.setText("負(fù)數(shù)不能求對(duì)數(shù)");</p><p><b> }</b></p><p><b> }</b></p><p> /* %求百分比 */</p><p> else if(st
72、r.equals("%")){</p><p> tf.setText</p><p> (df.format(Double.parseDouble(tf.getText()) / 100));</p><p><b> }</b></p><p> /* 1/x求倒數(shù) */</p>
73、;<p> else if(str.equals("1/x")){</p><p> if(Double.parseDouble(tf.getText()) == 0){</p><p> tf.setText("除數(shù)不能為零");</p><p><b> }else{</b>&l
74、t;/p><p> tf.setText(df.format(1 / Double.parseDouble(tf.getText())));</p><p><b> }</b></p><p><b> }</b></p><p> /* sin求正弦函數(shù) */</p><
75、p> else if(str.equals("sin")){</p><p> double i = Double.parseDouble(tf.getText());</p><p> tf.setText(String.valueOf(df.format(Math.sin(i))));</p><p><b> }&l
76、t;/b></p><p> /* cos求余弦函數(shù) */</p><p> else if(str.equals("cos")){</p><p> double i = Double.parseDouble(tf.getText());</p><p> tf.setText(String.valueOf
77、(df.format(Math.cos(i))));</p><p><b> }</b></p><p> /* tan求正切函數(shù) */</p><p> else if(str.equals("tan")){</p><p> double i = Double.parseDouble(t
78、f.getText());</p><p> tf.setText(String.valueOf(df.format(Math.tan(i))));</p><p><b> }</b></p><p> /* n!求階乘 */</p><p> else if(str.equals("n!"
79、)){</p><p> double i = Double.parseDouble(tf.getText());</p><p> if((i%2==0)||(i%2==1))//判斷為整數(shù)放進(jìn)行階乘操作</p><p><b> {</b></p><p> int j = (int)i;//強(qiáng)制類型轉(zhuǎn)換&l
80、t;/p><p> int result=1;</p><p> for(int k=1;k<=j;k++)</p><p> result *= k;</p><p> tf.setText(String.valueOf(result));</p><p><b> }</b><
81、;/p><p><b> else</b></p><p><b> {</b></p><p> tf.setText("無法進(jìn)行階乘");</p><p><b> }</b></p><p><b> }<
82、/b></p><p> /* x^2求平方 */</p><p> else if(str.equals("x^2")){</p><p> double i = Double.parseDouble(tf.getText());</p><p> tf.setText(String.valueOf(df.
83、format(i*i)));</p><p><b> }</b></p><p> /* x^3求立方 */</p><p> else if(str.equals("x^3")){</p><p> double i = Double.parseDouble(tf.getText());&
84、lt;/p><p> tf.setText(String.valueOf(df.format(i*i*i)));</p><p><b> }</b></p><p> /* ′″角度轉(zhuǎn)換 */</p><p><b> /**</b></p><p> * 將角度值轉(zhuǎn)
85、換成弧度值,方便三角函數(shù)的計(jì)算</p><p><b> */</b></p><p> else if(str.equals("′″")){</p><p> double i = Double.parseDouble(tf.getText());</p><p> tf.setText(S
86、tring.valueOf(i/180*Math.PI));</p><p><b> }</b></p><p><b> else{</b></p><p><b> if(flag){</b></p><p> IfResult = false;</p>
87、;<p><b> }</b></p><p> if(IfResult){</p><p> oper = str;</p><p><b> }else{ </b></p><p> getResult(Double.parseDouble(tf.getText()));
88、</p><p> oper = str;</p><p> IfResult = true;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p&
89、gt;<b> }</b></p><p><b> /**</b></p><p> * 清除按鈕的事件監(jiān)聽</p><p><b> */</b></p><p> class Clear implements ActionListener{</p>
90、<p> public void actionPerformed(ActionEvent e) {</p><p><b> /*</b></p><p> * 用ActionEvent對(duì)象的getActionCommand()方法</p><p> * 取得與引發(fā)事件對(duì)象相關(guān)的字符串</p><p>
91、;<b> */</b></p><p> String str = e.getActionCommand();</p><p> if(str == "C"){</p><p> tf.setText("0");</p><p> IfResult = true;<
92、;/p><p> result = 0;</p><p> }else if(str == "-/+"){</p><p> double i = 0 - Double.parseDouble(tf.getText().trim());</p><p> tf.setText(df.format(i));</p&
93、gt;<p> }else if(str == "Backspace"){</p><p> if(Double.parseDouble(tf.getText()) > 0){</p><p> if(tf.getText().length() > 1){</p><p> tf.setText(tf.getTe
94、xt().substring(0, tf.getText().length() - 1));</p><p> //使用退格刪除最后一位字符</p><p><b> }else{</b></p><p> tf.setText("0");</p><p> IfResult = true;&
95、lt;/p><p><b> }</b></p><p><b> }else{</b></p><p> if(tf.getText().length() > 2){</p><p> tf.setText(tf.getText().substring(0, tf.getText().l
96、ength() - 1));</p><p><b> }else{</b></p><p> tf.setText("0");</p><p> IfResult = true;</p><p><b> }</b></p><p><b&
97、gt; }</b></p><p> }else if(str == "CE"){</p><p> tf.setText("0");</p><p> IfResult = true;</p><p><b> }</b></p><p&
98、gt;<b> }</b></p><p><b> }</b></p><p><b> /**</b></p><p> * 數(shù)字輸入的事件監(jiān)聽</p><p><b> */</b></p><p> class
99、Num implements ActionListener{</p><p> public void actionPerformed(ActionEvent e) {</p><p> String str = e.getActionCommand();</p><p> if(IfResult){</p><p> tf.setT
100、ext("");</p><p> IfResult = false;</p><p><b> }</b></p><p> if(str=="π")</p><p><b> {</b></p><p> tf.setTe
101、xt(String.valueOf(Math.PI));</p><p><b> }</b></p><p> else if(str=="e")</p><p><b> {</b></p><p> tf.setText(String.valueOf(Math.E)
102、);</p><p><b> }</b></p><p><b> else{</b></p><p> tf.setText(tf.getText().trim() + str);</p><p> if(tf.getText().equals("0")){</
103、p><p> tf.setText("0");</p><p> IfResult = true;</p><p> flag = true;</p><p><b> }</b></p><p><b> }</b></p><
104、p><b> }</b></p><p><b> }</b></p><p><b> /**</b></p><p> * 小數(shù)點(diǎn)的事件監(jiān)聽</p><p><b> */</b></p><p> class
105、 Dot implements ActionListener{</p><p> public void actionPerformed(ActionEvent e) {</p><p> IfResult = false;</p><p> if(tf.getText().trim().indexOf(".") == -1){</p
106、><p> tf.setText(tf.getText() + ".");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> /
107、**</b></p><p><b> * main方法</b></p><p><b> */</b></p><p> public static void main(String[] args) {</p><p> new Calculator().setVisible(
108、true);</p><p><b> }</b></p><p><b> @Override</b></p><p> public void actionPerformed(ActionEvent e) {</p><p><b> }</b></p>
109、<p><b> }</b></p><p> 2、標(biāo)準(zhǔn)型計(jì)算器界面</p><p> import java.awt.BorderLayout;</p><p> import java.awt.Color;</p><p> import java.awt.Dimension;</p&g
110、t;<p> import java.awt.Font;</p><p> import java.awt.GridLayout;</p><p> import java.awt.event.ActionEvent;</p><p> import java.awt.event.ActionListener;</p><p
111、> import java.text.DecimalFormat;</p><p> import javax.swing.BorderFactory;</p><p> import javax.swing.ButtonGroup;</p><p> import javax.swing.JButton;</p><p>
112、import javax.swing.JCheckBoxMenuItem;</p><p> import javax.swing.JFrame;</p><p> import javax.swing.JMenu;</p><p> import javax.swing.JMenuBar;</p><p> import javax
113、.swing.JMenuItem;</p><p> import javax.swing.JPanel;</p><p> import javax.swing.JRadioButtonMenuItem;</p><p> import javax.swing.JTextField;</p><p> public class Ca
114、lculatorSimple extends JFrame implements ActionListener {</p><p> private JTextField tf;//創(chuàng)建文本框</p><p> private JPanel panel1, panel2, panel3, panel4;//創(chuàng)建面板容器</p><p> private JMe
115、nuBar myBar;//創(chuàng)建一個(gè)水平菜單欄</p><p> private JMenu menu1, menu2, menu3;</p><p> private JMenuItem editItem1, editItem2, help1, help2, help3;</p><p> private JRadioButtonMenuItem seeIt
116、em1, seeItem2;//單選框</p><p> private JCheckBoxMenuItem seeItem3;//復(fù)選框</p><p> private ButtonGroup itemGroup = new ButtonGroup();</p><p> private ButtonGroup bgb;</p><p&
117、gt; private String back;//字符串返回</p><p> private boolean IfResult = true, flag = false;</p><p> private String oper = "=";</p><p> private double result = 0;</p>
118、<p> private Num numActionListener;//設(shè)置數(shù)字監(jiān)聽</p><p> private DecimalFormat df;//格式化數(shù)字輸出</p><p> public CalculatorSimple(){</p><p> super("科學(xué)計(jì)算器");//設(shè)置標(biāo)題欄</p>
119、;<p> df = new DecimalFormat("#.####");//保留四位小數(shù)</p><p> this.setLayout(new BorderLayout(10, 5));</p><p> panel1 = new JPanel(new GridLayout(1, 3, 10, 10));</p><p&g
120、t; panel2 = new JPanel(new GridLayout(4, 6, 4, 4));</p><p> panel3 = new JPanel(new GridLayout(5, 1, 5, 5));</p><p> panel4 = new JPanel(new BorderLayout(5, 5));</p><p><b>
121、 /*</b></p><p><b> * 菜單欄</b></p><p><b> */</b></p><p> myBar = new JMenuBar();</p><p> menu1 = new JMenu("編輯(E)");</p>
122、;<p> menu2 = new JMenu("查看(V)");</p><p> menu3 = new JMenu("幫助(H)");</p><p> menu1.setFont(new Font("宋體", Font.PLAIN, 12));</p><p> menu2.s
123、etFont(new Font("宋體", Font.PLAIN, 12));</p><p> menu3.setFont(new Font("宋體", Font.PLAIN, 12));</p><p><b> /*</b></p><p><b> * 編輯欄</b>&
124、lt;/p><p><b> */</b></p><p> editItem1 = new JMenuItem("復(fù)制(C) Ctrl+C");</p><p> editItem2 = new JMenuItem("粘貼(P) Ctrl+V");</p><p> edit
125、Item1.setFont(new Font("宋體",Font.PLAIN,12));</p><p> editItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p><b> /*</b></p><p><b> * 查看欄<
126、/b></p><p><b> */</b></p><p> seeItem2= new JRadioButtonMenuItem("標(biāo)準(zhǔn)型");</p><p> seeItem1 = new JRadioButtonMenuItem("科學(xué)型");</p><p&
127、gt; seeItem3 = new JCheckBoxMenuItem("數(shù)字分組(I)");</p><p> seeItem1.addActionListener(this);</p><p> seeItem2.addActionListener(this);</p><p> seeItem2.setSelected(true)
128、;</p><p> itemGroup.add(seeItem1);</p><p> itemGroup.add(seeItem2);</p><p> seeItem1.addActionListener(new ActionListener() {</p><p> public void actionPerformed(Ac
129、tionEvent e) {</p><p> setVisible(false);</p><p> new Calculator().setVisible(true);</p><p><b> }</b></p><p><b> });</b></p><p>
130、; seeItem1.setFont(new Font("宋體",Font.PLAIN,12));</p><p> seeItem2.setFont(new Font("宋體",Font.PLAIN,12));</p><p> seeItem3.setFont(new Font("宋體",Font.PLAIN,12));
131、</p><p><b> /*</b></p><p><b> * 幫助欄</b></p><p><b> */</b></p><p> help1 = new JMenuItem("幫助主題(H)");</p><p&g
132、t; help2 = new JMenuItem("關(guān)于計(jì)算器(A)");</p><p> help1.setFont(new Font("宋體",Font.PLAIN,12));</p><p> help2.setFont(new Font("宋體",Font.PLAIN,12));</p><p&
133、gt; bgb = new ButtonGroup();//選項(xiàng)組</p><p> menu1.add(editItem1);</p><p> menu1.add(editItem2);</p><p> menu2.add(seeItem1);</p><p> menu2.add(seeItem2);</p>
134、<p> menu2.addSeparator();//添加一條分割線</p><p> menu2.add(seeItem3);</p><p> menu3.add(help1);</p><p> menu3.addSeparator();//添加一條分割線</p><p> menu3.add(help2);<
溫馨提示
- 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. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- java計(jì)算器課程設(shè)計(jì)報(bào)告---模擬科學(xué)計(jì)算器
- java課程設(shè)計(jì)模擬科學(xué)計(jì)算器
- java課程設(shè)計(jì)-模擬科學(xué)計(jì)算器
- java模擬科學(xué)計(jì)算器課程設(shè)計(jì)
- java模擬科學(xué)計(jì)算器課程設(shè)計(jì)
- java模擬科學(xué)計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)---java計(jì)算器
- 計(jì)算器java課程設(shè)計(jì)--簡(jiǎn)單計(jì)算器
- java課程設(shè)計(jì)---計(jì)算器
- java課程設(shè)計(jì)—計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)--計(jì)算器
- java課程設(shè)計(jì)計(jì)算器
- java_計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)-計(jì)算器系統(tǒng)
- java課程設(shè)計(jì)報(bào)告—計(jì)算器
- java課程設(shè)計(jì)----簡(jiǎn)易計(jì)算器
- java實(shí)現(xiàn)計(jì)算器課程設(shè)計(jì)
- java課程設(shè)計(jì)-計(jì)算器系統(tǒng)
評(píng)論
0/150
提交評(píng)論