久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1251|回復: 0
收起左側

計算器設計JAVA

[復制鏈接]
ID:306754 發表于 2018-4-12 17:23 | 顯示全部樓層 |閱讀模式
package Calculator;
import java.util.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Calculator{
   public static void main(String[] args){
  new  Interface();
   }
}
class Interface extends JFrame {
   ArrayList<String> list = new ArrayList<String>();//用來存該運算中的數,以及運算結果,由文本編輯框得到
   ArrayList<String> lists = new ArrayList<String>();//用來存該運算中使用了的運算符,當點擊運算符按鈕存起集合lists
   int cout = 0;                                     //計數運算符,用來作為集合中各元素的下標
   JPanel inputpanel;                                //GUI組件的布局包括如下三個過程:1。創建面板,確定面板中的布局管理
   JTextField inputField;                            //                     2.給面板添加標簽
   JButton button;                                   //                     3.為面板添加按鈕,文本編輯框等組件
   JButton btn1,btn2,btn3,btn4;
   JButton btn5,btn6,btn7,btn8;
   JButton btn9,btn10,btn11,btn12;
   JButton btn13,btn14,btn15,btn16;
   public Interface(){
inputpanel = new JPanel();
inputField = new JTextField(9);               //文本框長度為9            
button = new JButton("清零");
inputpanel.add(inputField);
inputpanel.add(button);
this.add(inputpanel);  
JPanel panel = new JPanel(new GridLayout(4,4));//設置panel面板的布局管理為GridLayout管理器,為一個4*4的網格
btn1 = new JButton("7");
btn2 = new JButton("8");
btn3 = new JButton("9");
btn4 = new JButton("+");
btn5 = new JButton("4");
btn6 = new JButton("5");
btn7 = new JButton("6");
btn8 = new JButton("-");
btn9 = new JButton("1");
btn10 = new JButton("2");
btn11 = new JButton("3");
btn12 = new JButton("×");
btn13 = new JButton("0");
btn14 = new JButton(".");
btn15 = new JButton("=");
btn16 = new JButton("÷");  //定義Button按鈕
panel.add(btn1);
panel.add(btn2);
panel.add(btn3);
panel.add(btn4);
panel.add(btn5);
      panel.add(btn6);
panel.add(btn7);
panel.add(btn8);
      panel.add(btn9);
      panel.add(btn10);
      panel.add(btn11);
      panel.add(btn12);
      panel.add(btn13);
panel.add(btn14);
panel.add(btn15);
panel.add(btn16);            //將按鈕添加進panel面板
btn1.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
    inputField.setText(inputField.getText()+"7");
}
});                        
btn2.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"8");
}
});
btn3.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"9");
}
});
btn5.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
    inputField.setText(inputField.getText()+"4");
}
});
btn6.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"5" );
}
});
btn7.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"6");
}
});
btn9.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
   inputField.setText(inputField.getText()+"1");
}
});
btn10.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"2");
}
});
btn11.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"3");
}
});

btn13.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+"0");
}
});
btn14.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
inputField.setText(inputField.getText()+".");
}
});                    //為數字按鈕和小數點按鈕添加點擊事件,點擊之后按鈕所代表數字顯示在文本編輯框
btn4.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
list.add(inputField.getText()); //運算的實現,獲取在文本編輯框上顯示的文本,并存入集合list中
lists.add("+");     //獲取運算符,存入lists中
cout++;             //標記運算符的個數,也就是要進行運算的次數
inputField.setText("");      
//將編輯框置為空的,方便下一個數據的額輸入
}
});            
btn8.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
list.add(inputField.getText());
lists.add("-");
cout++;
inputField.setText("");  
}
     });
     btn12.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
list.add(inputField.getText());
lists.add("×");
cout++;
inputField.setText("");  
}
     });
btn16.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
list.add(inputField.getText());
lists.add("÷");
cout++;
inputField.setText("");  
}
});
btn15.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){
list.add(inputField.getText());           //點擊按鈕=時,把此事編輯框顯示的數據存入list
inputField.setText(Operator(lists.get(cout-1)));//把運算得到的結果存入list,作為下一個運算符運算的前一個數
}
});
button.addActionListener(new ActionListener () {
public void actionPerformed(ActionEvent e){

inputField.setText("");
   list.clear();
   //將list和lists集合保存的上一次運算的各要素清空
lists.clear();

cout = 0;              //把cout的值還原
}
});
this.add(panel);
     this.setTitle("計算器");
     this.setSize(185,205);
     this.setLayout(new FlowLayout());
     this.setVisible(true);                 //GUI窗體
  }
public String  Operator(String str){
Double result = 0.0 ;

Double a = Double.parseDouble(list.get(2*cout-2));//將list中記錄的第一個運算符前一個數據轉化為Double類型
Double b = Double.parseDouble(list.get(2*cout-1));//將list中記錄的第一個運算符后一個數據轉化為Double類型
switch(str){                                      //cout表示第幾個字符
case "+" : result = a + b;
          break;
case "-" : result = a - b;
               break;
case "×" : result = a * b;
               break;
case "÷" : result = a / b;
               break;
}
String res = String.valueOf(result);
return res; //通過switch語句得到各種運算之后的返回值并轉化為String類型
}
}

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产午夜精品久久久久 | 在线观看免费国产 | 在线免费观看a级片 | jlzzjlzz欧美大全 | 亚洲欧美在线观看 | 午夜在线小视频 | 婷婷久久网 | 久久精品成人热国产成 | 精品网 | 日韩在线成人 | 日本视频在线 | 亚洲免费观看视频网站 | 久久久久久中文字幕 | 日本亚洲一区二区 | 欧美激情欧美激情在线五月 | 欧美专区日韩专区 | 在线成人av | 亚洲精品福利在线 | 日本不卡高字幕在线2019 | 在线色网 | 在线观看中文字幕一区二区 | 国产一级特黄视频 | 精品乱码一区二区 | 久久久久成人精品 | 综合久久99| 天天曰天天曰 | 天天爱av| 91在线观看| 欧美综合一区二区三区 | 国产清纯白嫩初高生视频在线观看 | 成年女人免费v片 | 久久久999免费视频 999久久久久久久久6666 | www.久久.com | 成人av高清 | 在线一级片 | 国产视频一区二区三区四区五区 | 欧美精品在线一区二区三区 | 91福利电影在线观看 | 日韩欧美精品一区 | 国产欧美精品一区二区色综合朱莉 | 久久久久久久久中文字幕 |