java實(shí)現(xiàn)簡單計(jì)算器
本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下
思路:定義一個(gè)主框架Frame,我們對(duì)原設(shè)計(jì)的草圖進(jìn)行劃分,以方便后面的布局
下面我們來對(duì)主框架進(jìn)行劃分

如圖,我們將主框架劃分為四個(gè)JPanel,其中panel1,2,3使用GridLayout布局,GridLayout(1,2),

對(duì)于panel4我們使用流式布局,主框架設(shè)置為FlowLayout,

由此我們把主要的布局設(shè)計(jì)好了,接下來我們將個(gè)標(biāo)簽,文本框,按鈕對(duì)應(yīng)按鈕按如上設(shè)計(jì)圖依次放入各個(gè)panel中,忘了說了,我們還有對(duì)各個(gè)按鈕注冊(cè)事件監(jiān)聽器

接著我們就要在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)聽
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ì)算器專題》 ,更多精彩等你來發(fā)現(xiàn)!
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java簡易計(jì)算器程序設(shè)計(jì)
- java模仿windows計(jì)算器示例
- java實(shí)現(xiàn)簡易計(jì)算器功能
- Java swing實(shí)現(xiàn)的計(jì)算器功能完整實(shí)例
- java圖形界面AWT編寫計(jì)算器
- 使用jsp調(diào)用javabean實(shí)現(xiàn)超簡單網(wǎng)頁計(jì)算器示例
- Java實(shí)現(xiàn)計(jì)算器的代碼
- java 簡單的計(jì)算器程序?qū)嵗a
- java實(shí)現(xiàn)簡單的計(jì)算器類實(shí)例
- java按鈕控件數(shù)組實(shí)現(xiàn)計(jì)算器界面示例分享
相關(guān)文章
Java獲取HttpServletRequest的三種方法詳解
這篇文章主要介紹了Java獲取HttpServletRequest的三種方法詳解,是一個(gè)接口,全限定名稱為Jakarta.Serclet.http.HttpServletRequest2023-11-11
HttpServletRequest接口是Servlet規(guī)范的一員,需要的朋友可以參考下
應(yīng)用Java泛型和反射導(dǎo)出CSV文件的方法
這篇文章主要介紹了應(yīng)用Java泛型和反射導(dǎo)出CSV文件的方法,通過一個(gè)自定義函數(shù)結(jié)合泛型與反射的應(yīng)用實(shí)現(xiàn)導(dǎo)出CSV文件的功能,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12
通過springboot+mybatis+druid配置動(dòng)態(tài)數(shù)據(jù)源
這篇文章主要介紹了通過springboot+mybatis+druid配置動(dòng)態(tài)數(shù)據(jù)源,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
Base64加解密的實(shí)現(xiàn)方式實(shí)例詳解
這篇文章主要介紹了Base64加解密的實(shí)現(xiàn)方式實(shí)例詳解的相關(guān)資料,這里提供了實(shí)現(xiàn)實(shí)例,幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下2017-08-08
java EasyExcel面向Excel文檔讀寫邏輯示例詳解
這篇文章主要為大家介紹了java EasyExcel面向Excel文檔讀寫邏輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07
詳解springboot+mybatis多數(shù)據(jù)源最簡解決方案
本篇文章主要介紹了詳解springboot+mybatis多數(shù)據(jù)源最簡解決方案,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05

