import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator implements ActionListener
{
   
    String s="",s1;
    double d1,d2;
JFrame jf = new JFrame("小计算器by  Graduate") ;
JTextField tf = new JTextField();

public void init()//实现计算器界面
{
Container c=jf.getContentPane();
tf.setHorizontalAlignment(JTextField.RIGHT);//文本框
c.add(tf,"North");

JPanel pn3 = new JPanel(new BorderLayout());
c.add(pn3,"Center");

JPanel pn2 = new JPanel();//功能键界面(清除键和关闭键)
pn2.setLayout(new BorderLayout());

JPanel pn1 = new JPanel();//运算界面

pn1.setLayout(new GridLayout(4,4));

pn3.add(pn2,"North");
pn3.add(pn1);

//设置按钮
JButton b = new JButton("CLEAR");
b.setToolTipText("请按清除键!") //设置清零键
b.setForeground(Color.RED);//设置字体颜色
b.setBackground(Color.YELLOW);//设置背景色
b.addActionListener(this);
pn2.add(b,"Center");
b = new JButton("OFF");
b.setToolTipText("请按退出键!")//设置off键,点击退出应用程序 b.addActionListener(this);
b.setForeground(Color.RED);//字体颜色
b.setBackground(Color.ORANGE);//背景色
pn2.add(b,"East");
b = new JButton("1");//add butten 1
b.addActionListener(this);
pn1.add(b);
b = new JButton("2");//add butten 2
b.addActionListener(this);
pn1.add(b);
b = new JButton("3");//add butten 3
b.addActionListener(this);
pn1.add(b);
b = new JButton("+");//add butten +
b.setForeground(Color.BLUE);//设置字体颜色
b.addActionListener(this);
pn1.add(b);
b = new JButton("4");//add butten 4
b.addActionListener(this);
pn1.add(b);
b = new JButton("5");//add butten 5
b.addActionListener(this);
pn1.add(b);
b = new JButton("6");//add button 6
b.addActionListener(this);
pn1.add(b);
b = new JButton("-");//add button -
b.setForeground(Color.BLUE);//设置字体颜色
b.addActionListener(this);
pn1.add(b);
b = new JButton("7");//add button 7
b.addActionListener(this);
pn1.add(b);
b = new JButton("8");//add button 8
b.addActionListener(this);
pn1.add(b);
b = new JButton("9");//add button 9
b.addActionListener(this);
pn1.add(b);
b = new JButton("*");//add button *
b.setForeground(Color.BLUE);//设置字体颜色
b.addActionListener(this);
pn1.add(b);
b = new JButton("0");//add button 0
b.addActionListener(this);
pn1.add(b);
b = new JButton(".");//add button .
b.addActionListener(this);
pn1.add(b);
b = new JButton("=");//add button =
b.setForeground(Color.RED);//设置字体颜色
b.addActionListener(this);
pn1.add(b);
b = new JButton("\\");//add button \
b.setForeground(Color.BLUE);//设置字体颜色
b.addActionListener(this);
pn1.add(b);

jf.setSize(300,300);//设置大小
jf.setVisible(true);//设置为可视
}

//处理按钮按下时的动作,进行相应的处理
public void actionPerformed(ActionEvent e)
{
        String command = e.getActionCommand();
        tf.setText(tf.getText()+command);
        if(command.equals("CLEAR")) //清零键 按下时返回初始状态
        {
         s1=null;
         s="";
            tf.setText("");//记录输入值的变量清空
        }
       
        else if(command.equals("OFF"))  System.exit(0);//off键 关闭应用程序
       
        else if(!command.equals("*")&&!command.equals("\\")
           &&!command.equals("+")&&!command.equals("-")
           &&!command.equals("="))//判断输入是否为数字
        {
         if(s1==null)//判断输入是否为第一个
            s1 = command;
            else s1+=command;
    d1 = new Double(s1).doubleValue();//字符串型转换为双精度型,还原输入数字
    try
    {
     if(s.equals("+")) d1 = d1+d2;//加法运算
    else if(s.equals("-")) d1 = d2-d1;//减法运算
    else if(s.equals("*")) d1 = d1*d2;//乘法运算
     else if(s.equals("\\"))d1 = d2/d1;//除法运算
    }
    catch(Exception ex)
    {
     tf.setText("Error");//错误显示"Error"
     System.out.println(ex.getMessage());
    }
    
}

else if(!command.equals("=")) //判断输入是否为+ - * \ 
{
    s = command;
s1 = null;
d2 = d1;
}

else//输入=时,显示运算结果
{

tf.setText(tf.getText()+d1);

}

}

public static void main(String [] args)
{
   
new Calculator().init();

}
}
————————————
因为刚学JAVA,能否帮忙给这个程序注释一下?谢谢了..在线等

解决方案 »

  1.   

    这个程序得界面是这样的 共有PN1,2,3三各面板 面版1是GIRDLAYOUT布局 就是网格共4 行4列
    分别是0到9和运算符 面板2上是两个按键 面板3装载2 和1面板然后又装到窗口上 这就是在init(初始化)方法里完成的事  再来就是事件监视器了以后在说了
    哎呀哎呀懒得打了
    拜托好不好
    到底哪里不懂你写清楚好不好样说好烦啊
    是事件监视器产生的动作不懂还是别的
    还是上面那位老兄会偷懒
      

  2.   

    try
        {
        if(s.equals("+")) d1 = d1+d2;//加法运算
        else if(s.equals("-")) d1 = d2-d1;//减法运算
        else if(s.equals("*")) d1 = d1*d2;//乘法运算
        else if(s.equals("\\"))d1 = d2/d1;//除法运算
        }
        catch(Exception ex)
        {
        tf.setText("Error");//错误显示"Error"
        System.out.println(ex.getMessage());
        }这段能否用其它的判断语句来代替它?====CSDN 小助手 V2.5 2005年11月05日发布====
    CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
    界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/11/05/523395.aspx
    下载:http://szlawbook.com/csdnv2