最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實(shí)現(xiàn)簡單計(jì)算器

 更新時(shí)間:2020年12月15日 08:42:14   作者:hixiaogui  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)簡單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了java實(shí)現(xiàn)簡單計(jì)算器的具體代碼,供大家參考,具體內(nèi)容如下

思路:定義一個(gè)主框架Frame,我們對原設(shè)計(jì)的草圖進(jìn)行劃分,以方便后面的布局

下面我們來對主框架進(jìn)行劃分

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

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

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

接著我們就要在actionPerformed()函數(shù)中對事件源(e.getSource())方法中對相應(yīng)的事件進(jìn)行處理,我們以加法為列,我們的設(shè)計(jì)思路是:從數(shù)字一,數(shù)字二對應(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ù)事件源不同就行對應(yīng)不同的運(yùn)算,接著結(jié)果繼續(xù)轉(zhuǎn)化為字符串(String.valueOf()函數(shù)),并且設(shè)置數(shù)字三對應(yīng)的文本框的內(nèi)容為相應(yīng)的結(jié)果即:jt3.setText();結(jié)束。

圖例 :乘法運(yùn)算處理

特別的,在做除法運(yùn)算時(shí)我們要對第二個(gè)操作數(shù)進(jìn)行零操作檢查,如果除數(shù)為零,我們將數(shù)字三對應(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è)置,及其注冊事件監(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ì)算器的精彩文章請查看《計(jì)算器專題》 ,更多精彩等你來發(fā)現(xiàn)!

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 教你用Java實(shí)現(xiàn)RSA非對稱加密算法

    教你用Java實(shí)現(xiàn)RSA非對稱加密算法

    今天帶各位小伙伴學(xué)習(xí)怎么用Java實(shí)現(xiàn)RSA非對稱加密算法,文中有非常詳細(xì)的解釋及代碼示例,對正在學(xué)java算法的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • 淺談hashmap為什么查詢時(shí)間復(fù)雜度為O(1)

    淺談hashmap為什么查詢時(shí)間復(fù)雜度為O(1)

    這篇文章主要介紹了hashmap為什么查詢時(shí)間復(fù)雜度為O(1),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Character.UnicodeBlock中cjk的說明詳解

    Character.UnicodeBlock中cjk的說明詳解

    這篇文章主要為大家詳細(xì)介紹了Character.UnicodeBlock中cjk的說明,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Java?深入理解創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式

    Java?深入理解創(chuàng)建型設(shè)計(jì)模式之抽象工廠模式

    當(dāng)系統(tǒng)所提供的工廠所需生產(chǎn)的具體產(chǎn)品并不是一個(gè)簡單的對象,而是多個(gè)位于不同產(chǎn)品等級結(jié)構(gòu)中屬于不同類型的具體產(chǎn)品時(shí)需要使用抽象工廠模式,抽象工廠模式是所有形式的工廠模式中最為抽象和最具一般性的一種形態(tài)
    2022-02-02
  • mybatis使用foreach語句實(shí)現(xiàn)IN查詢(三種)

    mybatis使用foreach語句實(shí)現(xiàn)IN查詢(三種)

    這篇文章主要介紹了mybatis使用foreach語句實(shí)現(xiàn)IN查詢(三種),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • JDK1.8下載、安裝和環(huán)境配置超詳細(xì)教程(最新最完整)

    JDK1.8下載、安裝和環(huán)境配置超詳細(xì)教程(最新最完整)

    jdk1.8是一款功能強(qiáng)大的Java語音軟件開發(fā)工具包,JDK是學(xué)好Java的第一步,本文重點(diǎn)給大家介紹JDK1.8下載、安裝和環(huán)境配置教程,需要的朋友可以參考下
    2022-11-11
  • SpringBoot搭配AOP實(shí)現(xiàn)自定義注解

    SpringBoot搭配AOP實(shí)現(xiàn)自定義注解

    這篇文章主要為大家詳細(xì)介紹了SpringBoot如何搭配AOP實(shí)現(xiàn)自定義注解,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-12-12
  • SpringBoot整合MybatisPlus的基本應(yīng)用指南

    SpringBoot整合MybatisPlus的基本應(yīng)用指南

    MyBatis-Plus ,簡稱 MP,是一個(gè) MyBatis的增強(qiáng)工具,在 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,下面小編就來和大家介紹一下SpringBoot整合MybatisPlus的一些基本應(yīng)用吧
    2025-03-03
  • JVM的類加載過程詳細(xì)說明

    JVM的類加載過程詳細(xì)說明

    近來讀了《深入理解JVM虛擬機(jī)》的部分內(nèi)容,對JVM也慢慢有個(gè)整體的認(rèn)識,今天就來分享一下我對JVM類加載過程的學(xué)習(xí)和理解,需要的朋友可以參考下
    2021-06-06
  • 淺談Thread.sleep(0)到底有什么用

    淺談Thread.sleep(0)到底有什么用

    為什么要用sleep,主要是為了暫停當(dāng)前線程,把cpu片段讓出給其他線程,減緩當(dāng)前線程的執(zhí)行,本文主要介紹了Thread.sleep(0)到底有什么用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06

最新評論

任丘市| 叙永县| 乌海市| 吉林市| 保山市| 遂昌县| 呈贡县| 广东省| 阿克苏市| 嘉定区| 新乐市| 登封市| 裕民县| 辽阳县| 穆棱市| 福建省| 梓潼县| 宜宾市| 米易县| 乐山市| 银川市| 徐水县| 武宁县| 新化县| 宝清县| 静乐县| 温宿县| 依安县| 玉田县| 读书| 阿荣旗| 泸西县| 巴林左旗| 大连市| 麻阳| 尼勒克县| 毕节市| 项城市| 长顺县| 土默特左旗| 牟定县|