计算器

昨天用了一个下午,总算用java将一个计算器写了出来,看起来还不错,试了试,还可以,并学会了生成可执行的jar文件。
一言不合,贴个代码

package calculator;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class Jisuan extends JFrame{
    JTextField disply = new JTextField(50);
    JButton JB0 = new JButton("0");
    JButton JB1 = new JButton("1");
    JButton JB2 = new JButton("2");
    JButton JB3 = new JButton("3");
    JButton JB4 = new JButton("4");
    JButton JB5 = new JButton("5");
    JButton JB6 = new JButton("6");
    JButton JB7 = new JButton("7");
    JButton JB8 = new JButton("8");
    JButton JB9 = new JButton("9");
    JButton JBans = new JButton("=");
    JButton JBsub = new JButton("-");
    JButton JBadd = new JButton("+");
    JButton JBmul = new JButton("*");
    JButton JBdiv = new JButton("/");
    JButton JBpoint = new JButton(".");
    JButton JBDC = new JButton("DC");

    Jisuan( ){
        JPanel p2 = new JPanel();
        p2.setLayout(new GridLayout(4,4));
        p2.add(JBpoint);
        p2.add(JB0);
        p2.add(JBDC);
        p2.add(JBadd);
        p2.add(JB1);
        p2.add(JB2);
        p2.add(JB3);
        p2.add(JBsub);
        p2.add(JB4);
        p2.add(JB5);
        p2.add(JB6);
        p2.add(JBmul);
        p2.add(JB7);
        p2.add(JB8);
        p2.add(JB9);
        p2.add(JBdiv);

        add(disply,BorderLayout.NORTH);
        add(p2,BorderLayout.CENTER);
        add(JBans,BorderLayout.SOUTH);

        JB0.addActionListener(new JB0Listener());
        JB1.addActionListener(new JB1Listener());
        JB2.addActionListener(new JB2Listener());
        JB3.addActionListener(new JB3Listener());
        JB4.addActionListener(new JB4Listener());
        JB5.addActionListener(new JB5Listener());
        JB6.addActionListener(new JB6Listener());
        JB7.addActionListener(new JB7Listener());
        JB8.addActionListener(new JB8Listener());
        JB9.addActionListener(new JB9Listener());
        JBsub.addActionListener(new JBsubListener());
        JBadd.addActionListener(new JBaddListener());
        JBdiv.addActionListener(new JBdivListener());
        JBmul.addActionListener(new JBmulListener());
        JBans.addActionListener(new JBansListener());
        JBpoint.addActionListener(new JBpointListener());

    }
    class JB0Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('0');
           disply.setText(One.getdisply());
        }
    }
    class JB1Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('1');
           disply.setText(One.getdisply());
        }
    }
    class JB2Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('2');
           disply.setText(One.getdisply());
        }
    }
    class JB3Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('3');
           disply.setText(One.getdisply());
        }
    }
    class JB4Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('4');
           disply.setText(One.getdisply());
        }
    }
    class JB5Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('5');
           disply.setText(One.getdisply());
        }
    }
    class JB6Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('6');
           disply.setText(One.getdisply());
        }
    }
    class JB7Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('7');
           disply.setText(One.getdisply());
        }
    }
    class JB8Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('8');
           disply.setText(One.getdisply());
        }
    }
    class JB9Listener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
           One.number('9');
           disply.setText(One.getdisply());
        }
    }
    class JBpointListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.number('.');
            disply.setText(One.getdisply());
        }
    }
    class JBaddListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.StringTonum();
            One.getOperator('+');
            disply.setText(One.getdisply());
        }
    }
    class JBsubListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.StringTonum();
            One.getOperator('-');
            disply.setText(One.getdisply());
        }
    }
    class JBmulListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.StringTonum();
            One.getOperator('*');
            disply.setText(One.getdisply());
        }
    }
    class JBdivListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.StringTonum();
            One.getOperator('/');
            disply.setText(One.getdisply());
        }
    }
    class JBansListener implements ActionListener{
        public void actionPerformed(ActionEvent e)
        {
            One.StringTonum();
            disply.setText(String.format("%.6f", One.getAns()));
        }
    }
}

public class One {
    public static  char num[] = new char[100];
    public static char str[] = new char[200];
    public static int i = 0,j = 0;
    public static boolean judge = true;
    public static String A,B;
    public static char operator;
    public static double numA,numB,ans;
    public static void main(String[] args) {
        Jisuan myFrame = new Jisuan();

        myFrame.setTitle("OK");
        myFrame.setSize(400,230);
        myFrame.setVisible(true);
        myFrame.setLocationRelativeTo(null);
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    public static void number(char c)
    {
        num[i++] = c;
        str[j++] = c;
        str[j++] = ' ';
    }
    public static void StringTonum()
    {
      if(judge)
      {
          A = String.valueOf(num);

          numA = Double.parseDouble(A);
          clean(num);
          judge = false;
          i=0;
      }
      else
      {
          B = String.valueOf(num);
          numB = Double.parseDouble(B);
          clean(num);
          judge = true;
          i=0;
      }
    }
    public static void getOperator(char c)
    {
        operator = c;
        str[j++] = c;
        str[j++] = ' ';
    }
    public static String getdisply()
    {
        String temp;
        temp = String.valueOf(str);
        return temp;
    }
    public static void clean(char str[])
    {
        for(int i=0;i<100;i++)
        {
            str[i] = '\0';
        }
    }
    public static double getAns()
    { 
        switch (operator){
            case '+':
                ans = numA + numB;
                break;
            case '-':
                ans = numA - numB;
                break;
            case '*':
                ans = numA * numB;
                break;
            case '/':
                ans = numA / numB;  
                break;
        }
        clean(str); 
        j = 0;
        return ans;
    }   
}

可能写的有点冗余。。。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值