jsj

 import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Caltuer implements ActionListener
{
double buffop1=0.0;//运算符号前面的数
double buffop2=0.0;//运算符号后面的数
String mum="";//开始操作数
String buffer[]=new String[1];//运算符号存在buffer
Double sum=0.0; 
boolean flag = true;
JFrame f;
JPanel p1,p2,p3;
JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;
JTextField t;
MenuBar mb;
Menu mf,me,mh;
CheckboxMenuItem cbm;
public void show(){
f=new JFrame("计算器");
t=new JTextField ("0.",25);
t.setHorizontalAlignment(JTextField.RIGHT);
t.setEditable(false); 
p1=new JPanel();
p2=new JPanel();
p3=new JPanel();
b0=new JButton("0");
b0.addActionListener(this);
b1=new JButton("1");
b1.addActionListener(this);
b2=new JButton("2");
b2.addActionListener(this);
b3=new JButton("3");
b3.addActionListener(this);
b4=new JButton("4");
b4.addActionListener(this);
b5=new JButton("5");
b5.addActionListener(this);
b6=new JButton("6");
b6.addActionListener(this);
b7=new JButton("7");
b7.addActionListener(this);
b8=new JButton("8");
b8.addActionListener(this);
b9=new JButton("9");
b9.addActionListener(this);
b10=new JButton("MC");
b11=new JButton("MR");
b12=new JButton("MS");
b13=new JButton("M+");
b14=new JButton("sqrt");
b15=new JButton("%");
b15.addActionListener(this);
b16=new JButton("1/x");
b16.addActionListener(this);
b17=new JButton("=");
b17.addActionListener(this);
b18=new JButton("+");
b18.addActionListener(this);
b19=new JButton("-");
b19.addActionListener(this);
b20=new JButton("*");
b20.addActionListener(this);
b21=new JButton("/");
b21.addActionListener(this);
b22=new JButton("C");
b22.addActionListener(this);
b23=new JButton("CE");
b23.addActionListener(this);
b24=new JButton("Backspace");
b25=new JButton(".");
b25.addActionListener(this);
b26=new JButton("+/-");
mb=new MenuBar();
f.setMenuBar(mb);
mf=new Menu("编辑(E)");
me=new Menu("查看(V)");
mh=new Menu("帮助(H)");
mb.add(mf);
mb.add(me);
mb.add(mh);
mf.add(new MenuItem("复制(C)",new MenuShortcut(KeyEvent.VK_C)));
mf.add(new MenuItem("粘贴(P)",new MenuShortcut(KeyEvent.VK_V)));
me.add(new MenuItem("标准型(C)"));
me.add(new MenuItem("科学型(S)"));
 cbm=new CheckboxMenuItem("数字分组(W)",true);
me.add(cbm);
mh.add(new MenuItem("帮助主题(H)"));
mh.add(new MenuItem("关于计算器(A)"));
p1.add(t);
f.add(p1,"North");
p2.add(b24);
p2.add(b23);
p2.add(b22);
p2.setBackground(Color.LIGHT_GRAY);
p3.setLayout(new GridLayout(4,6));
p3.setBackground(Color.LIGHT_GRAY);
p3.add(b10);p3.add(b7);p3.add(b8);p3.add(b9);p3.add(b21);p3.add(b14);
p3.add(b11);p3.add(b4);p3.add(b5);p3.add(b6);p3.add(b20);p3.add(b15);
p3.add(b12);p3.add(b1);p3.add(b2);p3.add(b3);p3.add(b19);p3.add(b16);
p3.add(b13);p3.add(b0);p3.add(b26);p3.add(b25);p3.add(b18);p3.add(b17);
f.add(p3,"Center");
f.add(p2,"South");
f.setVisible(true);
f.setSize(350,320);
//f.setResizable(false);

}
public void actionPerformed(ActionEvent e) {

 char ch=e.getActionCommand().charAt(0);//返回键入的数值指定位置的字符
    String ch1=String.valueOf(ch);
    String  ch2=e.getActionCommand();
 
   //if(ch1.compareTo("0")>0&&ch1.compareTo("9")<=0) { mum+=ch1;t.setText(mum);}
   if(ch >= '0' && ch<= '9'||ch=='.'){ mum+=ch1;t.setText(mum);}
  else if(ch2=="+"||ch2=="-"||ch2=="*"||ch2=="/"||ch2=="%") {
    buffop1=Double.parseDouble(mum);
    mum="";
    buffer[0]=ch2;}

  else if(ch2=="="){
 buffop2=Double.parseDouble(t.getText());
  if(buffer[0]=="+")
  {
  sum=buffop1+buffop2;
  t.setText(String.valueOf(sum));
  } 
  
  else if(buffer[0]=="-")
   {
 
   sum=buffop1-buffop2;
   t.setText(String.valueOf(sum));
   }
  else if(buffer[0]=="*")
   {
       sum=buffop1*buffop2;
    t.setText(String.valueOf(sum));
   }
    else if(buffer[0]=="/"){
    if(buffop2==0.0) System.out.println("divide by zero");
     else {
   sum=buffop1/buffop2;
   t.setText(String.valueOf(sum));
   }
    }
    else if(buffer[0]=="%"){
   sum=buffop1%buffop2;
   t.setText(String.valueOf(sum));
   }
  
  }

  else if(ch2=="C"){mum="";t.setText("0.");}
  else if(ch2=="CE"){mum="";t.setText("0.");}
   }
public static void main(String[] args)
{
 Caltuer tcv=new Caltuer();
 tcv.show();
 }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值