java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡(jiǎn)單計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
思路:定義一個(gè)主框架Frame,我們對(duì)原設(shè)計(jì)的草圖進(jìn)行劃分,以方便后面的布局
下面我們來(lái)對(duì)主框架進(jìn)行劃分
如圖,我們將主框架劃分為四個(gè)JPanel,其中panel1,2,3使用GridLayout布局,GridLayout(1,2),
對(duì)于panel4我們使用流式布局,主框架設(shè)置為FlowLayout,
由此我們把主要的布局設(shè)計(jì)好了,接下來(lái)我們將個(gè)標(biāo)簽,文本框,按鈕對(duì)應(yīng)按鈕按如上設(shè)計(jì)圖依次放入各個(gè)panel中,忘了說(shuō)了,我們還有對(duì)各個(gè)按鈕注冊(cè)事件監(jiān)聽(tīng)器
接著我們就要在actionPerformed()函數(shù)中對(duì)事件源(e.getSource())方法中對(duì)相應(yīng)的事件進(jìn)行處理,我們以加法為列,我們的設(shè)計(jì)思路是:從數(shù)字一,數(shù)字二對(duì)應(yīng)的文本框接收數(shù)據(jù),由于使用JTextField的方法getText()返回的是一個(gè)String,所以我們要將其轉(zhuǎn)化為十進(jìn)制實(shí)數(shù),所以我們使用了Double.parseDouble()函數(shù)將從文本框接收到的String轉(zhuǎn)化為一個(gè)實(shí)數(shù),數(shù)字一和數(shù)字二現(xiàn)在變成了實(shí)數(shù),接著根據(jù)事件源不同就行對(duì)應(yīng)不同的運(yùn)算,接著結(jié)果繼續(xù)轉(zhuǎn)化為字符串(String.valueOf()函數(shù)),并且設(shè)置數(shù)字三對(duì)應(yīng)的文本框的內(nèi)容為相應(yīng)的結(jié)果即:jt3.setText();結(jié)束。
圖例 :乘法運(yùn)算處理
特別的,在做除法運(yùn)算時(shí)我們要對(duì)第二個(gè)操作數(shù)進(jìn)行零操作檢查,如果除數(shù)為零,我們將數(shù)字三對(duì)應(yīng)的文本區(qū)設(shè)置為”除數(shù)不能為零”提示用戶,除數(shù)不能為0
圖例:除數(shù)不能為零
程序運(yùn)行結(jié)果:輸出1,2
加法
減法
乘法
除法
除數(shù)不能為0:
實(shí)現(xiàn)源碼
import java.awt.*;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener; public class MyCalc extends JFrame implements ActionListener { JFrame jf; JLabel jl1; JLabel jl2; JLabel jl3; JButton jb1; JButton jb2; JButton jb3; JButton jb4; JTextField jt1; JTextField jt2; JTextField jt3; JPanel jp1; JPanel jp2; JPanel jp3; JPanel jp4; Container con; public void go() { //窗口設(shè)置 this.setLayout(new FlowLayout()); this.setTitle('計(jì)算'); this.setSize(150,200); con=this.getContentPane(); //標(biāo)簽設(shè)置 jl1=new JLabel('數(shù)字一'); jl2=new JLabel('數(shù)字二'); jl3=new JLabel('數(shù)字三'); //按鈕設(shè)置,及其注冊(cè)事件監(jiān)聽(tīng) jb1=new JButton('+'); jb1.addActionListener(this); jb2=new JButton('-'); jb2.addActionListener(this); jb3=new JButton('*'); jb3.addActionListener(this); jb4=new JButton('/'); jb4.addActionListener(this); //添加到面板 jp1=new JPanel(new GridLayout(1,2)); jp2=new JPanel(new GridLayout(1,2)); jp3=new JPanel(new GridLayout(1,2)); jp4=new JPanel(new GridLayout(1,2)); //穿件文本框 jt1=new JTextField(); jt2=new JTextField(); jt3=new JTextField(); jp1.setVisible(true); jp1.add(jl1); jp1.add(jt1); con.add(jp1); jp2.add(jl2); jp2.add(jt2); con.add(jp2); jp3.add(jl3); jp3.add(jt3); con.add(jp3); jp4.add(jb1); jp4.add(jb2); jp4.add(jb3); jp4.add(jb4); con.add(jp4); this.setVisible(true); } public static void main(String [] args) { MyCalc a= new MyCalc(); a.go(); } @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub if(e.getSource()==jb1) { jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())+Double.parseDouble(jt2.getText()))); }else if(e.getSource()==jb2) { jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())-Double.parseDouble(jt2.getText()))); }else if(e.getSource()==jb3) { jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())*Double.parseDouble(jt2.getText()))); }else { if(Double.parseDouble(jt2.getText())==0.0) { jt3.setText('除數(shù)不能為零'); }else jt3.setText(String.valueOf(Double.parseDouble(jt1.getText())/Double.parseDouble(jt2.getText()))); } }}
關(guān)于計(jì)算器的精彩文章請(qǐng)查看《計(jì)算器專題》 ,更多精彩等你來(lái)發(fā)現(xiàn)!
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Struts2獲取參數(shù)的三種方法總結(jié)2. JSP中Servlet的Request與Response的用法與區(qū)別3. IntelliJ IDEA刪除類的方法步驟4. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理5. vue cli4下環(huán)境變量和模式示例詳解6. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程7. springboot+vue實(shí)現(xiàn)websocket配置過(guò)程解析8. Django視圖類型總結(jié)9. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼10. 關(guān)于JavaScript對(duì)象類型之Array及Object
