java 计算器倒数,【java】计算器1

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

importjavax.swing.border.*;

importjava.util.LinkedList;

importjava.text.NumberFormat;

publicclassComputerPadextendsFrameimplementsActionListener

{

NumberButton numberButton[];

OperationButton oprationButton[];

Button 小数点按钮,正负号按钮,退格按钮,

求倒数按钮,等号按钮,清零按钮;

Panel panel;

JTextField resultShow;

String 运算符号[]={"+","-","*","/"};

LinkedList 链表;

boolean是否按下等号=false;

publicComputerPad()

{

super("计算器");

链表=newLinkedList();

numberButton=newNumberButton[10];

for(inti=0;i<=9;i++)

{

numberButton[i]=newNumberButton(i);

numberButton[i].addActionListener(this);

}

oprationButton=newOperationButton[4];

for(inti=0;i<4;i++)

{

oprationButton[i]=newOperationButton(运算符号[i]);

oprationButton[i].addActionListener(this);

}

小数点按钮=newButton(".");

正负号按钮  =newButton("+/-");

等号按钮=newButton("=");

求倒数按钮=newButton("1/x");

退格按钮=newButton("退格");

清零按钮=newButton("C");

清零按钮.setForeground(Color.red);

退格按钮.setForeground(Color.red);

等号按钮.setForeground(Color.red);

求倒数按钮.setForeground(Color.blue);

正负号按钮.setForeground(Color.blue);

小数点按钮.setForeground(Color.blue);

退格按钮.addActionListener(this);

清零按钮.addActionListener(this);

等号按钮.addActionListener(this);

小数点按钮.addActionListener(this);

正负号按钮.addActionListener(this);

求倒数按钮.addActionListener(this);

resultShow=newJTextField(10);

resultShow.setHorizontalAlignment(JTextField.RIGHT);

resultShow.setForeground(Color.blue);

resultShow.setFont(newFont("TimesRoman",Font.PLAIN,14));

resultShow.setBorder(newSoftBevelBorder(BevelBorder.LOWERED));

resultShow.setBackground(Color.white);

resultShow.setEditable(false);

panel=newPanel();

panel.setLayout(newGridLayout(4,5));

panel.add(numberButton[1]);

panel.add(numberButton[2]);

panel.add(numberButton[3]);

panel.add(oprationButton[0]);

panel.add(清零按钮);

panel.add(numberButton[4]);

panel.add(numberButton[5]);

panel.add(numberButton[6]);

panel.add(oprationButton[1]);

panel.add(退格按钮);

panel.add(numberButton[7]);

panel.add(numberButton[8]);

panel.add(numberButton[9]);

panel.add(oprationButton[2]);

panel.add(求倒数按钮);

panel.add(numberButton[0]);

panel.add(正负号按钮);

panel.add(小数点按钮);

panel.add(oprationButton[3]);

panel.add(等号按钮);

add(panel,BorderLayout.CENTER);

add(resultShow,BorderLayout.NORTH);

addWindowListener(newWindowAdapter()

{publicvoidwindowClosing(WindowEvent e)

{

System.exit(0);

}

});

setVisible(true);

setBounds(100,50,240,180);

setResizable(false);

validate();

}

publicvoidactionPerformed(ActionEvent e)

{

if(e.getSource()instanceofNumberButton)

{

NumberButton b=(NumberButton)e.getSource();

if(链表.size()==0)

{

intnumber=b.getNumber();

链表.add(""+number);

resultShow.setText(""+number);

是否按下等号=false;

}

elseif(链表.size()==1&&是否按下等号==false)

{

intnumber=b.getNumber();

String num=(String)链表.getFirst();

String s=num.concat(""+number);

链表.set(0,s);

resultShow.setText(s);

}

elseif(链表.size()==1&&是否按下等号==true)

{

intnumber=b.getNumber();

链表.removeFirst();

链表.add(""+number);

是否按下等号=false;

resultShow.setText(""+number);

}

elseif(链表.size()==2)

{

intnumber=b.getNumber();

链表.add(""+number);

resultShow.setText(""+number);

}

elseif(链表.size()==3)

{

intnumber=b.getNumber();

String num=(String)链表.getLast();

String s=num.concat(""+number);

链表.set(2,s);

resultShow.setText(s);

}

}

elseif(e.getSource()instanceofOperationButton)

{

OperationButton b=(OperationButton)e.getSource();

if(链表.size()==1)

{

String fuhao=b.get运算符号();

链表.add(fuhao);

}

elseif(链表.size()==2)

{

String fuhao=b.get运算符号();

链表.set(1,fuhao);

}

elseif(链表.size()==3)

{

String fuhao=b.get运算符号();

String number1=(String)链表.getFirst();

String number2=(String)链表.getLast();

String 运算符号=(String)链表.get(1);

try

{

doublen1=Double.parseDouble(number1);

doublen2=Double.parseDouble(number2);

doublen=0;

if(运算符号.equals("+"))

{

n=n1+n2;

}

elseif(运算符号.equals("-"))

{

n=n1-n2;

}

elseif(运算符号.equals("*"))

{

n=n1*n2;

}

elseif(运算符号.equals("/"))

{

n=n1/n2;

}

链表.clear();

链表.add(""+n);

链表.add(fuhao);

resultShow.setText(""+n);

}

catch(Exception ee)

{

}

}

}

elseif(e.getSource()==等号按钮)

{

是否按下等号=true;

if(链表.size()==1||链表.size()==2)

{

String num=(String)链表.getFirst();

resultShow.setText(""+num);

}

elseif(链表.size()==3)

{

String number1=(String)链表.getFirst();

String number2=(String)链表.getLast();

String 运算符号=(String)链表.get(1);

try

{

doublen1=Double.parseDouble(number1);

doublen2=Double.parseDouble(number2);

doublen=0;

if(运算符号.equals("+"))

{

n=n1+n2;

}

elseif(运算符号.equals("-"))

{

n=n1-n2;

}

elseif(运算符号.equals("*"))

{

n=n1*n2;

}

elseif(运算符号.equals("/"))

{

n=n1/n2;

}

resultShow.setText(""+n);

链表.set(0,""+n);

链表.removeLast();

链表.removeLast();

}

catch(Exception ee)

{

}

}

}

elseif(e.getSource()==小数点按钮)

{

if(链表.size()==0)

{

是否按下等号=false;

}

elseif(链表.size()==1)

{

String dot=小数点按钮.getLabel();

String num=(String)链表.getFirst();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

链表.set(0,s);

}

else

{

s=num;

}

链表.set(0,s);

resultShow.setText(s);

}

elseif(链表.size()==3)

{

String dot=小数点按钮.getLabel();

String num=(String)链表.getLast();

String s=null;

if(num.indexOf(dot)==-1)

{

s=num.concat(dot);

链表.set(2,s);

}

else

{

s=num;

}

resultShow.setText(s);

}

}

elseif(e.getSource()==退格按钮)

{

if(链表.size()==1)

{

String num=(String)链表.getFirst();

if(num.length()>=1)

{

num=num.substring(0,num.length()-1);

链表.set(0,num);

resultShow.setText(num);

}

else

{

链表.removeLast();

resultShow.setText("0");

}

}

elseif(链表.size()==3)

{

String num=(String)链表.getLast();

if(num.length()>=1)

{ num=num.substring(0,num.length()-1);

链表.set(2,num);

resultShow.setText(num);

}

else

{

链表.removeLast();

resultShow.setText("0");

}

}

}

elseif(e.getSource()==正负号按钮)

{

if(链表.size()==1)

{

String number1=(String)链表.getFirst();

try

{

doubled=Double.parseDouble(number1);

d=-1*d;

String str=String.valueOf(d);

链表.set(0,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

elseif(链表.size()==3)

{

String number2=(String)链表.getLast();

try

{

doubled=Double.parseDouble(number2);

d=-1*d;

String str=String.valueOf(d);

链表.set(2,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

}

elseif(e.getSource()==求倒数按钮)

{

if(链表.size()==1||链表.size()==2)

{

String number1=(String)链表.getFirst();

try

{

doubled=Double.parseDouble(number1);

d=1.0/d;

String str=String.valueOf(d);

链表.set(0,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

elseif(链表.size()==3)

{

String number2=(String)链表.getLast();

try

{

doubled=Double.parseDouble(number2);

d=1.0/d;

String str=String.valueOf(d);

链表.set(0,str);

resultShow.setText(str);

}

catch(Exception ee)

{

}

}

}

elseif(e.getSource()==清零按钮)

{

是否按下等号=false;

resultShow.setText("0");

链表.clear();

}

}

publicstaticvoidmain(String args[])

{

newComputerPad();

}

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值