《有界面的计算器》由会员分享,可在线阅读,更多相关《有界面的计算器(6页珍藏版)》请在金锄头文库上搜索。
1、有界面的计算器有界面的计算器import java.awt.*;import java.awt.event.*;public class Counters extends FramePanel panel;TextField tf;Button b,add,sub,mul,div,cle,equ,dot,two,sqr,tsex;Boolean isDot,operated,equaled;double storedNumber;char lastOperator;public Counters()isDot=false;operated=false;equaled=false;storedN
2、umber=0;lastOperator=?;panel=new Panel();tf=new TextField();b=new Button10;for(int i=0;i10;i+)bi=new Button(“+i);add=new Button(“+“);sub=new Button(“-“);mul=new Button(“*“);div=new Button(“/“);cle=new Button(“Cle“);equ=new Button(“=“);dot=new Button(“.“);two=new Button(“N(2)“);sqr=new Button(“);tsex
3、=new Button(“N(16)“);this.add(tf,BorderLayout.NORTH);this.add(panel,BorderLayout.CENTER);panel.setLayout(new GridLayout(5,4,10,10);panel.add(b1);panel.add(b2);panel.add(b3);panel.add(add);panel.add(b4);panel.add(b5);panel.add(b6);panel.add(sub);panel.add(b7);panel.add(b8);panel.add(b9);panel.add(mul
4、);panel.add(b0);panel.add(dot);panel.add(sqr);panel.add(div);panel.add(two);panel.add(tsex);panel.add(cle);panel.add(equ);this.setTitle(“计算器“);this.setSize(250,350);this.setVisible(true);for(int i=0;i10;i+)bi.addActionListener(new Monitor();add.addActionListener(new Monitor();sub.addActionListener(n
5、ew Monitor();mul.addActionListener(new Monitor();div.addActionListener(new Monitor();dot.addActionListener(new Monitor();sqr.addActionListener(new Monitor();equ.addActionListener(new Monitor();cle.addActionListener(new Monitor();this.addWindowListener(new WindowAdapter()public void windowClosing(Win
6、dowEvent e)System.exit(0););two.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int temp=Integer.parseInt(tf.getText();tf.setText(“+Integer.toBinaryString(temp););tsex.addActionListener(new ActionListener()public void actionPerformed(ActionEvent e)int temp=Integer.par
7、seInt(tf.getText();tf.setText(“+Integer.toHexString(temp););class Monitor implements ActionListenerpublic void actionPerformed(ActionEvent e)Button btn=(Button)e.getSource();if(btn=cle)tf.setText(“0“);isDot=false;storedNumber=0;lastOperator=?;else if(btn=equ)operate(=);equaled=true;else if(btn=add)o
8、perate(+);equaled=false;else if(btn=sub)operate(-);equaled=false;else if(btn=mul)operate(*);equaled=false;else if(btn=div)operate(/);equaled=false;else if(btn=sqr)operate(s);operate(=);equaled=true;elseif(equaled) storedNumber=0;for(int i=0;i10;i+)if(btn=bi)if(tf.getText().equals(“0“)tf.setText(“+i)
9、;else if(!operated)tf.setText(tf.getText()+i);elsetf.setText(“+i);operated=false;if(btn=dotisDot=true;public void operate(char operator)double currentNumber = Double.valueOf(tf.getText().doubleValue();if (lastOperator = ?)storedNumber = currentNumber;else if (lastOperator = +)storedNumber += current
10、Number;else if (lastOperator = -)storedNumber -= currentNumber;else if (lastOperator = *)storedNumber *= currentNumber;else if (lastOperator = /)storedNumber /= currentNumber;else if (lastOperator = s)storedNumber = Math.sqrt(currentNumber);else if (lastOperator = = tf.setText(“ + storedNumber);operated = true;lastOperator = operator;public static void main(String args)new Counters();赞同 11| 评论(1)