如上面题目

解决方案 »

  1.   

    http://blog.csdn.net/pigrain/archive/2004/08/19/79027.aspx
      

  2.   

    import java.awt.BorderLayout;
    import java.awt.Button;
    import java.awt.GridLayout;
    import java.awt.TextArea;
    import java.awt.TextField;
    import java.awt.Toolkit;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;import javax.swing.JFrame;
    import java.util.*;public class CounterFrame extends JFrame implements ActionListener {

    //取得屏幕的宽度
    int width=Toolkit.getDefaultToolkit().getScreenSize().width;
    //取得屏幕的高度
    int height=Toolkit.getDefaultToolkit().getScreenSize().height;

    boolean flag = true;

    String num1="";

    Button b0 = new Button("1");
    Button b1 = new Button("2");
    Button b2 = new Button("3");
        Button b3 = new Button("0");
        Button b4 = new Button("/");
        Button b5 = new Button("=");
        Button b6 = new Button("4");
        Button b7 = new Button("5");
        Button b8 = new Button("6");
        Button b9 = new Button("*");
        
        Button ba = new Button("+");
        Button bb = new Button("-");
        Button bc = new Button("7");
        Button bd = new Button("8");
        Button be = new Button("9");
        Button bf = new Button("BackSpace");
        Button bg = new Button("sqrt");
        //Button bh = new Button("exit");
        
        TextArea taContent = new TextArea();
        //TextField tfTxt = new TextField();
        //System.out.println(b2.paramString());
        
       

    public CounterFrame()
    {
    //设置标题
    this.setTitle("计算器(YDC版)");
    //设置窗口大小
    this.setSize(700, 300);
    //设置窗体出现位置
    this.setLocation((width-500)/2,(height-500)/2);
    //设置窗体大小不可变
    this.setResizable(false);
    //将窗体的关闭方式设置为默认关闭后关闭程序
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //this.add(tfTxt, BorderLayout.NORTH);

    this.setLayout (new GridLayout(3,6));//三行两列
    this.add(b0);
    this.add(b1);        
    this.add(b2);
    this.add(b3);        
    this.add(b4);
    this.add(b5);        
        this.add(b6);
    this.add(b7);        
    this.add(b8);
        this.add(b9);        
    this.add(ba);
    this.add(bb);        
    this.add(bc);
    this.add(bd);        
    this.add(be);
    this.add(bf); 
    this.add(bg);
    //this.add(bh);
    //this.pack(); 
    this.add(taContent, BorderLayout.SOUTH);

    b0.addActionListener(this);
    b1.addActionListener(this);
    b2.addActionListener(this);
    b3.addActionListener(this);
    b4.addActionListener(this);
    b5.addActionListener(this);
    b6.addActionListener(this);
    b7.addActionListener(this);
    b8.addActionListener(this);
    b9.addActionListener(this);
    ba.addActionListener(this);
    bb.addActionListener(this);
    bc.addActionListener(this);
    bd.addActionListener(this);
    be.addActionListener(this);
    bf.addActionListener(this);
    bg.addActionListener(this);




    //System.out.println(b1.getLabel());

    //为窗口加入监听器
    //this.addMouseListener(this);
    //将窗体显示出来
    this.setVisible(true);



    } public void actionPerformed(ActionEvent e) {

    long n1,n2,sum;


    if(e.getSource() == b0)
    {

    num1+=1;
    taContent.setText(num1);
    }
    if(e.getSource() == b1)
    {
    System.out.println("2");
    num1+=2;
    taContent.setText(num1);
    }
    if(e.getSource() == b2)
    {
    System.out.println("3");
    num1+=3;
    taContent.setText(num1);
    }

    if(e.getSource() == b3)
    {

    num1+=0;
    taContent.setText(num1);
    }
    if(e.getSource() == b4)
    {

    num1+="/";
    taContent.setText(num1);
    }
    if(e.getSource() == b5)
    {
    String num  = taContent.getText().trim();
    //System.out.println(num);
    if(num.contains("+"))
    {


    String[] tempnum=num.split("\\+");
    //num1="";
    n1 = Integer.parseInt(tempnum[0]);
    n2 = Integer.parseInt(tempnum[1]);
    sum =  n1+n2;
    taContent.setText(num1+"="+sum);



    }
    if(num.contains("-"))
    {
    String[] tempnum=num.split("\\-");
    //num1="";
    n1 = Integer.parseInt(tempnum[0]);
    n2 = Integer.parseInt(tempnum[1]);
    sum =  n1-n2;
    taContent.setText(num1+"="+sum);
    }
    if(num.contains("*"))
    {
    String[] tempnum=num.split("\\*");
    //num1="";
    n1 = Integer.parseInt(tempnum[0]);
    n2 = Integer.parseInt(tempnum[1]);
    sum =  n1*n2;
    taContent.setText(num1+"="+sum);
    }
    if(num.contains("/"))
    {
    double  d1=0,d2=0;
    double sum1=0.0;
    String[] tempnum=num.split("/");
    //num1="";
    d1 = Double.parseDouble(tempnum[0]);
    d2 = Double.parseDouble(tempnum[1]);

    try
    {
    sum1 =  d1 / d2;

    }
    catch(ArithmeticException ex)
    {
    ex.printStackTrace();

    }
    taContent.setText(num1+"="+sum1);
    }


    num1=""; //taContent.getText();
    }
    if(e.getSource() == b6)
    {

    num1+=4;
    taContent.setText(num1);
    }
    if(e.getSource() == b7)
    {

    num1+=5;
    taContent.setText(num1);
    }
    if(e.getSource() == b8)
    {

    num1+=6;
    taContent.setText(num1);
    }
    if(e.getSource() == b9)
    {

    num1+="*";
    taContent.setText(num1);
    }
    if(e.getSource() == ba)
    {

    num1=num1+"+";
    taContent.setText(num1);
    }
    if(e.getSource() == bb)
    {

    num1=num1+"-";
    taContent.setText(num1);
    }
    if(e.getSource() == bc)
    {

    num1+=7;
    taContent.setText(num1);
    }
    if(e.getSource() == bd)
    {

    num1+=8;
    taContent.setText(num1);
    }
    if(e.getSource() == be)
    {

    num1+=9;
    taContent.setText(num1);
    }
    if(e.getSource() == bf)
    {

    num1="";
    taContent.setText(num1);
    }
    if(e.getSource() == bg)
    {

    num1=num1+"*"+num1;
    taContent.setText(num1);
    }


    }
    }
    看看这个代码,上面我都做的注释,看完了应该就明白了