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

java實現(xiàn)簡單計算器功能

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

使用java來實現(xiàn)一個簡單的計算器,供大家參考,具體內(nèi)容如下

最近使用java制作了一個計算器,菜單欄里的功能沒有實現(xiàn),只是寫一個版式,僅僅實現(xiàn)了計算功能 ,如果想要實現(xiàn)菜單欄功能可自行在該代碼的基礎(chǔ)上去實現(xiàn)。

話不多說直接上代碼

package test;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

 public class calculate extends JFrame implements ActionListener {
  private Container ct;
  private JButton[] jbs;
  private String[] str;
  private JTextField jTextField;
  //cal[0]用來存儲第一次輸入的數(shù)
  //cal[1]用來存儲運算符(+,-,*,/,%)
  //cal[2]用來存儲第二次輸入的數(shù)
  //cal[3]用來存儲結(jié)果
  //cal[4]用來存儲MS鍵所存儲的數(shù)
  //cal[5]用來獲取要存入的值(用來給cal[4]賦值)
  private String[] cal = {"","","","","",""};
  //_count和_count1始終相反,如果_count為true則表示正在輸入cal[0]反之表示cal[0]輸入完成,該輸入cal[2]
  //當點過等號后將cal[3]的值賦給cal[0]
  private boolean _count = true;
  private boolean _count1 = false;

  public calculate() {
   super("計算器");
   jbs = new JButton[28];
   ct = this.getContentPane();
   this.setBounds(100, 100, 315, 400);
   this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
   ct.setLayout(null);
   //菜單欄
   JMenuBar jMenuBar = new JMenuBar();
   JMenu jm = new JMenu("查看(V)");
   JMenu jm1 = new JMenu("編輯(E)");
   JMenu jm2 = new JMenu("幫助(H)");
   jMenuBar.add(jm);
   jMenuBar.add(jm1);
   jMenuBar.add(jm2);
   this.setJMenuBar(jMenuBar);
   //輸出框
   jTextField = new JTextField("0");
   jTextField.setFont(new Font("宋體", Font.BOLD, 25));
   jTextField.setEditable(false);
   jTextField.setHorizontalAlignment(JTextField.RIGHT);
   jTextField.setBounds(5, 5, 285, 65);
   ct.add(jTextField);
   //按鍵    0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
   str = new String[]{"MC", "MR", "MS", "M+", "M-", "←", "CE", "C", "±", "√", "7", "8", "9", "/", "%", "4", "5", "6", "*", "1/x", "1", "2", "3", "-", "=", "0", ".", "+"};
   int k = 0;
   for (int i = 75; i <= 195; i = i + 40) {
    for (int init = 10; init <= 290; init = init + 57) {
     JButton jButton = new JButton(str[k]);
     jbs[k] = jButton;
     jButton.setBounds(init, i, 52, 35);
     ct.add(jButton);
     k++;
     System.out.println(k);
    }
   }
   for (int i = 235; i < 265; i = i + 40) {
    for (int j = 10; j <= 181; j = j + 57) {
     JButton jButton = new JButton(str[k]);
     jButton.setBounds(j, i, 52, 35);
     ct.add(jButton);
     jbs[k] = jButton;
     k++;
     System.out.println(k);
    }
   }
   JButton jButton = new JButton(str[k]);
   jbs[k] = jButton;
   k++;
   System.out.println(k);
   jButton.setBounds(240, 235, 52, 75);
   ct.add(jButton);
   JButton jButton2 = new JButton(str[k]);
   System.out.println(str[k]);
   jButton2.setBounds(10, 275, 109, 35);
   ct.add(jButton2);
   jbs[k] = jButton2;
   k++;
   for (int i = 275; i < 310; i = i + 40) {
    for (int j = 124; j <= 181; j = j + 57) {
     JButton jButton1 = new JButton(str[k]);
     jButton1.setBounds(j, i, 52, 35);
     ct.add(jButton1);
     jbs[k] = jButton1;
     k++;
    }
   }
   for (int i = 0; i < 28; i++) {
    jbs[i].addActionListener(this);
   }
   this.setVisible(true);
  }

  public static void main(String[] args) {
   new calculate();
  }


  @Override
  public void actionPerformed(ActionEvent actionEvent) {
   if (actionEvent.getActionCommand().equals(".")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("0")){
    method(actionEvent);
   } else if (actionEvent.getActionCommand().equals("1")){
    method(actionEvent);
   }else if(actionEvent.getActionCommand().equals("2")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("3")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("4")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("5")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("6")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("7")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("8")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("9")){
    method(actionEvent);
   }else if (actionEvent.getActionCommand().equals("±")){
    if(_count){
     if (cal[0].contains(".")){
      cal[0] = String.valueOf(Double.parseDouble(cal[0]) * (-1));
      jTextField.setText(cal[0]);
     }else {
      cal[0] = String.valueOf(Integer.parseInt(cal[0]) * (-1));
      jTextField.setText(cal[0]);
     }
    }else {
     if (cal[2].contains(".")){
      cal[2] = String.valueOf(Double.parseDouble(cal[2]) * (-1));
      jTextField.setText(cal[2]);
     }else {
      cal[2] = String.valueOf(Integer.parseInt(cal[2]) * (-1));
      jTextField.setText(cal[2]);
     }
    }
   }else if(actionEvent.getActionCommand().equals("√")){
    if(_count){
     cal[0] = String.valueOf(Math.pow(Double.parseDouble(cal[0]),0.5));
     jTextField.setText(cal[0]);
    }else {
     cal[2] = String.valueOf(Math.pow(Double.parseDouble(cal[2]),0.5));
     jTextField.setText(cal[2]);
    }
   }else if(actionEvent.getActionCommand().equals("1/x")){
    if(_count){
     cal[0] = String.valueOf(1/Double.parseDouble(cal[0]));
     jTextField.setText(cal[0]);
    }else {
     cal[2] = String.valueOf(1/Double.parseDouble(cal[2]));
     jTextField.setText(cal[2]);
    }
   }else if(actionEvent.getActionCommand().equals("←")){
    if(_count){
     cal[0] = cal[0].substring(0,cal[0].length()-1);
     if(cal[0].equals("")){
      jTextField.setText("0");
     }else {
      jTextField.setText(cal[0]);
     }
    }else {
     cal[2] = cal[2].substring(0,cal[2].length()-1);
     if(cal[2].equals("")){
      jTextField.setText("0");
     }else {
      jTextField.setText(cal[2]);
     }
    }
   }else if(actionEvent.getActionCommand().equals("CE")){
    if (_count){
     cal[0]="";
     jTextField.setText("0");
    }else {
     cal[2]="";
     jTextField.setText("0");
    }
   }else if(actionEvent.getActionCommand().equals("C")){
    _count = true;
    cal[0]="";
    cal[1]="";
    cal[2]="";
    cal[3]="";
    jTextField.setText("0");
   }else if (actionEvent.getActionCommand().equals("+")){
    if (!cal[0].equals("")&&!cal[2].equals("")){
     if (cal[0].contains(".") || cal[2].contains(".")){
      cal[0]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2]));
     }else {
      cal[0] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2]));
     }
     cal[2]="";
    }
    cal[1] = "+";
    _count=false;
    jTextField.setText(cal[1]);
   }else if (actionEvent.getActionCommand().equals("-")){
    if (!cal[0].equals("")&&!cal[2].equals("")){
     if (cal[0].contains(".") || cal[2].contains(".")){
      cal[0]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2]));
     }else {
      cal[0] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2]));
     }
     cal[2]="";
    }
    cal[1] = "-";
    _count=false;
    jTextField.setText(cal[1]);
   }else if (actionEvent.getActionCommand().equals("*")){
    if (!cal[0].equals("")&&!cal[2].equals("")){
     if (cal[0].contains(".") || cal[2].contains(".")){
      cal[0]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2]));
     }else {
      cal[0] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2]));
     }
     cal[2]="";
    }
    cal[1] = "*";
    _count=false;
    jTextField.setText(cal[1]);
   }else if (actionEvent.getActionCommand().equals("/")){
    if (!cal[0].equals("")&&!cal[2].equals("")){
     if (cal[0].contains(".") || cal[2].contains(".")){
      cal[0]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2]));
     }else {
      cal[0] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2]));
     }
     cal[2]="";
    }
    cal[1] = "/";
    _count=false;
    jTextField.setText(cal[1]);
   }else if (actionEvent.getActionCommand().equals("%")){
    cal[0]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2]));
    cal[2]="";
    cal[1] = "%";
    _count=false;
    jTextField.setText(cal[1]);
   }else if (actionEvent.getActionCommand().equals("=")){
    if(cal[0].equals("")&&cal[2].equals("")){
     jTextField.setText("0");
    }else if(!cal[0].equals("")&&cal[2].equals("")){
     jTextField.setText(cal[0]);
    }else if(!cal[0].equals("")&&!cal[2].equals("")){
     if(cal[1].equals("+")){
      if (cal[0].contains(".") || cal[2].contains(".")){
       cal[3]=String.valueOf(Double.parseDouble(cal[0]) + Double.parseDouble(cal[2]));
      }else {
       cal[3] = String.valueOf(Integer.parseInt(cal[0]) + Integer.parseInt(cal[2]));
      }
      jTextField.setText(cal[3]);
     }else if (cal[1].equals("-")){
      if (cal[0].contains(".") || cal[2].contains(".")){
       cal[3]=String.valueOf(Double.parseDouble(cal[0]) - Double.parseDouble(cal[2]));
      }else {
       cal[3] = String.valueOf(Integer.parseInt(cal[0]) - Integer.parseInt(cal[2]));
      }
      jTextField.setText(cal[3]);
     }else if(cal[1].equals("*")){
      if (cal[0].contains(".") || cal[2].contains(".")){
       cal[3]=String.valueOf(Double.parseDouble(cal[0]) * Double.parseDouble(cal[2]));
      }else {
       cal[3] = String.valueOf(Integer.parseInt(cal[0]) * Integer.parseInt(cal[2]));
      }
      jTextField.setText(cal[3]);
     }else if (cal[1].equals("/")){
      if (cal[0].contains(".") || cal[2].contains(".")){
       cal[3]=String.valueOf(Double.parseDouble(cal[0]) / Double.parseDouble(cal[2]));
      }else {
       cal[3] = String.valueOf(Integer.parseInt(cal[0]) / Integer.parseInt(cal[2]));
      }
      jTextField.setText(cal[3]);
     }else if (cal[1].equals("%")){
      cal[3]=String.valueOf(Integer.parseInt(cal[0]) % Integer.parseInt(cal[2]));
      jTextField.setText(cal[3]);
     }
    }
    cal[0]=cal[3];
    cal[2]="";
    _count=true;
    _count1 = true;
    cal[5]=cal[0];
   }else if(actionEvent.getActionCommand().equals("MC")){
    cal[4]="";
   }else if(actionEvent.getActionCommand().equals("MR")){
    if(_count){
     if(!cal[4].equals("")){
      cal[0]=cal[4];
      jTextField.setText(cal[0]);
     }
    }else {
     if(!cal[4].equals("")){
      cal[2]=cal[4];
      jTextField.setText(cal[2]);
     }
    }
   }else if(actionEvent.getActionCommand().equals("MS")){
    if(_count){
     cal[0]="";
    }
    cal[4]=cal[5];
    System.out.println("cal[5]"+cal[5]);
    System.out.println("ms:"+cal[4]);
   }else if(actionEvent.getActionCommand().equals("M+")){
    if(!cal[4].equals("")){
     if (cal[4].contains(".") || cal[5].contains(".")){
      cal[4]=String.valueOf(Double.parseDouble(cal[4]) + Double.parseDouble(cal[5]));
     }else {
      cal[4] = String.valueOf(Integer.parseInt(cal[4]) + Integer.parseInt(cal[5]));
     }
    }
   }else if(actionEvent.getActionCommand().equals("M-")){
    if(!cal[4].equals("")){
     if (cal[4].contains(".") || cal[5].contains(".")){
      cal[4]=String.valueOf(Double.parseDouble(cal[4]) - Double.parseDouble(cal[5]));
     }else {
      cal[4] = String.valueOf(Integer.parseInt(cal[4]) - Integer.parseInt(cal[5]));
     }
    }
   }
  }
  public void method(ActionEvent actionEvent){
   if(_count){
    if (_count1){
     cal[0]="";
     _count1=false;
    }
    cal[0] += actionEvent.getActionCommand();
    cal[5]=cal[0];
    System.out.println(cal[5]);
   }else {
    cal[2] += actionEvent.getActionCommand();
    cal[5]=cal[2];
   }
   jTextField.setText(actionEvent.getActionCommand());
  }
}

效果圖:

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

相關(guān)文章

  • Java實現(xiàn)手寫線程池的示例代碼

    Java實現(xiàn)手寫線程池的示例代碼

    在我們的日常的編程當中,并發(fā)是始終離不開的主題,而在并發(fā)多線程當中,線程池又是一個不可規(guī)避的問題。本文就來分享一下如何自己手寫一個線程池,需要的可以參考一下
    2022-08-08
  • Spring和Websocket相結(jié)合實現(xiàn)消息的推送

    Spring和Websocket相結(jié)合實現(xiàn)消息的推送

    這篇文章主要介紹了Spring和Websocket相結(jié)合實現(xiàn)消息的推送的相關(guān)資料,本文介紹的非常詳細具有參考借鑒價值,感興趣的朋友一起學習吧
    2016-02-02
  • SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟

    SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟

    這篇文章主要介紹了SpringBoot通過RedisTemplate執(zhí)行Lua腳本的方法步驟,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Spring?Boot?中的?@DateTimeFormat?和?@JsonFormat?的用法及作用詳解

    Spring?Boot?中的?@DateTimeFormat?和?@JsonFormat?的用法及作用詳解

    本文介紹了SpringBoot中的@DateTimeFormat和@JsonFormat注解的用法,解釋了它們在處理日期和時間數(shù)據(jù)時的作用,并通過實例代碼展示了如何在REST控制器中使用這些注解,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Mybatis中注入執(zhí)行sql查詢、更新、新增及建表語句案例代碼

    Mybatis中注入執(zhí)行sql查詢、更新、新增及建表語句案例代碼

    這篇文章主要介紹了Mybatis中注入執(zhí)行sql查詢、更新、新增以及建表語句,主要說明一個另類的操作,注入sql,并使用mybatis執(zhí)行,結(jié)合案例代碼詳解講解,需要的朋友可以參考下
    2023-02-02
  • springboot?自定義啟動器的實現(xiàn)

    springboot?自定義啟動器的實現(xiàn)

    本文主要介紹了springboot?自定義啟動器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • jmeter添加自定義擴展函數(shù)之圖片base64編碼示例詳解

    jmeter添加自定義擴展函數(shù)之圖片base64編碼示例詳解

    這篇文章主要介紹了jmeter添加自定義擴展函數(shù)之圖片base64編碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-01-01
  • Java基礎(chǔ)之ClassLoader詳解

    Java基礎(chǔ)之ClassLoader詳解

    這篇文章主要介紹了Java基礎(chǔ)之ClassLoader詳解,文中對ClassLoader有非常詳細的解說,對正在學習java基礎(chǔ)的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • Java的DelayQueue延遲隊列簡單使用代碼實例

    Java的DelayQueue延遲隊列簡單使用代碼實例

    這篇文章主要介紹了Java的DelayQueue延遲隊列簡單使用代碼實例,DelayQueue是一個延遲隊列,插入隊列的數(shù)據(jù)只有達到設(shè)置的延遲時間時才能被取出,否則線程會被阻塞,插入隊列的對象必須實現(xiàn)Delayed接口,需要的朋友可以參考下
    2023-12-12
  • 堆排序?qū)嵗?Java數(shù)組實現(xiàn))

    堆排序?qū)嵗?Java數(shù)組實現(xiàn))

    下面小編就為大家分享一篇使用Java數(shù)組實現(xiàn)堆排序的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12

最新評論

南乐县| 惠州市| 隆子县| 香格里拉县| 平谷区| 若尔盖县| 静乐县| 沐川县| 杭锦旗| 荣成市| 监利县| 泗洪县| 安庆市| 泰和县| 咸宁市| 荣成市| 夏邑县| 如东县| 东阿县| 哈尔滨市| 南通市| 衡山县| 兴业县| 井陉县| 通化县| 澄城县| 南雄市| 阳信县| 元谋县| 东明县| 成都市| 蓬莱市| 泊头市| 福贡县| 和田市| 垦利县| 九龙坡区| 杭锦旗| 温州市| 新津县| 泸水县|