import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class MyCalculator extends JFrame
{
double startNumber=0.0;
JTextField jf=new JTextField(16);
JButton rest=new JButton("CE");
String buttons[]=
{
"7","8","9","/",
"4","5","6","*",
"1","2","3","+",
".","0","=","-"
};
JButton keys[]=new JButton[buttons.length];
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
public void addButtons()
{
jp2.setLayout(new GridLayout(4,4));
this.getContentPane().add(jp2);
for(int i=0;i<buttons.length;i++)
{

keys[i]=new JButton(buttons[i]);
jp2.add(keys[i]);
}
}
public MyCalculator()
{
super("我的计算器");
this.getContentPane().add(jp1,BorderLayout.NORTH);
jp1.add(jf);
//jf.setEditable(false);
//jf.setText("0");
jp1.add(rest);
addButtons();
this.setLocation(300,300);
this.setResizable(false);
this.setSize(250,250);
this.setVisible(true);
for(int i=0;i<buttons.length;i++)
{
    keys[i].addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e)
    {
String cmd=e.getActionCommand();
if("1234567890.".indexOf(cmd)>=0)
{
seekkeys(cmd);
}else if("+-*/=".indexOf(cmd)>=0)
{
handlekeys(cmd);
}
    
}
  });
}
rest.addActionListener(new ActionListener(){
public void  actionPerformed(ActionEvent e)
{
jf.setText("");

}
});


}
public void seekkeys(String key)
{
if(key.equals("."))
{
jf.setText(jf.getText()+".");

}
else 
{
jf.setText(jf.getText()+key);
}
}
public void handlekeys(String key)
{
if(key.equals("+"))
{
startNumber +=getNumber();
    
}else if(key.equals("-"))
{
startNumber -=getNumber();
}else if(key.equals("*"))
{
startNumber *=getNumber();
}else if(key.equals("/"))
{
startNumber /=getNumber();
}else if(key.equals("="))
{
startNumber=getNumber();
}
    jf.setText(String.valueOf(startNumber));
    
    jf.setText("");
}
public double getNumber()
{
return Double.valueOf(jf.getText()).doubleValue();
}


public static void main(String []args)
{
new MyCalculator();
}

}

解决方案 »

  1.   


    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class MyCalculator extends JFrame {
    double startNumber = 0.0; JTextField jf = new JTextField(16); JButton rest = new JButton("CE"); String buttons[] = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3",
    "+", ".", "0", "=", "-" }; JButton keys[] = new JButton[buttons.length]; JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel();

    String type = "";
    int len = 0;

    public void addButtons() {
    jp2.setLayout(new GridLayout(4, 4));
    this.getContentPane().add(jp2);
    for (int i = 0; i < buttons.length; i++) { keys[i] = new JButton(buttons[i]);
    jp2.add(keys[i]);
    }
    } public MyCalculator() {
    super("我的计算器");
    this.getContentPane().add(jp1, BorderLayout.NORTH);
    jp1.add(jf);
    // jf.setEditable(false);
    // jf.setText("0");
    jp1.add(rest);
    addButtons();
    this.setLocation(300, 300);
    this.setResizable(false);
    this.setSize(250, 250);
    this.setVisible(true);
    for (int i = 0; i < buttons.length; i++) {
    keys[i].addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if ("1234567890.".indexOf(cmd) >= 0) {
    if(len==0)jf.setText("");
    seekkeys(cmd);
    len++;
    } else if ("+-*/".indexOf(cmd) >= 0) {
    if(jf.getText()!="")startNumber =new Double(jf.getText());
    type=cmd;
    len=0;
    } else if ("=".indexOf(cmd) >= 0) {
    handlekeys(type);
    } }
    });
    }
    rest.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    jf.setText("");
    startNumber=0; }
    }); } public void seekkeys(String key) {
    if (key.equals(".")) {
    jf.setText(jf.getText() + "."); } else {
    jf.setText(jf.getText() + key);
    }
    } public void handlekeys(String key) {
    if (key.equals("+")) {
    startNumber += getNumber();
    } else if (key.equals("-")) {
    startNumber -= getNumber();
    } else if (key.equals("*")) {
    startNumber *= getNumber();
    } else if (key.equals("/")) {
    startNumber /= getNumber();
    }// else if (key.equals("=")) {
    // startNumber = getNumber();
    // }
    jf.setText(String.valueOf(startNumber));// jf.setText("");
    } public double getNumber() {
    return Double.valueOf(jf.getText()).doubleValue();
    } public static void main(String[] args) {
    new MyCalculator();
    }}
      

  2.   

    这个可以连续等于多少import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;public class MyCalculator extends JFrame {
    double startNumber = 0.0; JTextField jf = new JTextField(16); JButton rest = new JButton("CE"); String buttons[] = { "7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3",
    "+", ".", "0", "=", "-" }; JButton keys[] = new JButton[buttons.length]; JPanel jp1 = new JPanel(); JPanel jp2 = new JPanel();

    String type = "";
    int len = 0,lenEqual = 0;
    int second = 0;

    public void addButtons() {
    jp2.setLayout(new GridLayout(4, 4));
    this.getContentPane().add(jp2);
    for (int i = 0; i < buttons.length; i++) { keys[i] = new JButton(buttons[i]);
    jp2.add(keys[i]);
    }
    } public MyCalculator() {
    super("我的计算器");
    this.getContentPane().add(jp1, BorderLayout.NORTH);
    jp1.add(jf);
    // jf.setEditable(false);
    // jf.setText("0");
    jp1.add(rest);
    addButtons();
    this.setLocation(300, 300);
    this.setResizable(false);
    this.setSize(250, 250);
    this.setVisible(true);
    for (int i = 0; i < buttons.length; i++) {
    keys[i].addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    String cmd = e.getActionCommand();
    if ("1234567890.".indexOf(cmd) >= 0) {
    if(len==0)jf.setText("");
    seekkeys(cmd);
    len++;
    } else if ("+-*/".indexOf(cmd) >= 0) {
    if(jf.getText()!="")startNumber =new Double(jf.getText());
    type=cmd;
    len=0;
    lenEqual=0;
    } else if ("=".indexOf(cmd) >= 0) {
    if(lenEqual==0)second=new Integer(jf.getText());
    handlekeys(type);
    lenEqual++;
    }
    }
    });
    }
    rest.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
    jf.setText("");
    startNumber=0;
    lenEqual=0;
    }
    }); } public void seekkeys(String key) {
    if (key.equals(".")) {
    jf.setText(jf.getText() + ".");
    } else {
    jf.setText(jf.getText() + key);
    }
    } public void handlekeys(String key) {
    if (key.equals("+")) {
    startNumber += second;
    } else if (key.equals("-")) {
    startNumber -= second;
    } else if (key.equals("*")) {
    startNumber *= second;
    } else if (key.equals("/")) {
    startNumber /= second;
    }
    jf.setText(String.valueOf(startNumber)); } public static void main(String[] args) {
    new MyCalculator();
    }}