import java.awt.Container;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
/**
* Java计算器 Calculater
*/
private int temp = 0;
private float result = 0;
private float fnumber = 0, bnumber = 0;
public Calculater() {
init();
}
public void init() {
Container c
= jf.
getContentPane();// Returns the contentPane object for
// this frame.
jtf.
setHorizontalAlignment(JTextField.
RIGHT);// 设置文本的水平对齐方式
jp.
setLayout(new GridLayout(4,
4));// 对于GridLayout(int rows,int
// cols)详情请参见API
c.
add(jp,
BorderLayout.
CENTER);/* 这里刚开始犯了一低级错误,将c写成了jp,逻辑调用都出现了问题 */
for (int i = 0; i < 10; i++) {
ja[i].addActionListener(this);
}
for (int j = 0; j < 5; j++) {
jb[j].addActionListener(this);
}
for (int i = 0; i < 10; i++) {
jp.add(ja[i]);
}
for (int j = 0; j < 5; j++) {
jp.add(jb[j]);
}
jp.add(jis);
jis.addActionListener(this);
jf.setSize(200, 300);
jf.setVisible(true);
}
String s
= e.
getActionCommand();
if (s.equals("+")) {
this.
fnumber = Float.
parseFloat(this.
jtf.
getText());
this.jtf.setText("");
this.temp = 1;
} else if (s.equals("-")) {
this.
fnumber = Float.
parseFloat(this.
jtf.
getText());
this.jtf.setText("");
this.temp = 2;
} else if (s.equals("*")) {
this.
fnumber = Float.
parseFloat(this.
jtf.
getText());
this.jtf.setText("");
this.temp = 3;
} else if (s.equals("/")) {
this.
fnumber = Float.
parseFloat(this.
jtf.
getText());
this.jtf.setText("");
this.temp = 4;
} else if (s.equals(".")) {
if (jtf.equals("")) {
jtf.setText("0.");
} else {
jtf.setText(jtf.getText() + ".");
}
} else if (s.equals("=")) {
this.
bnumber = Integer.
parseInt(this.
jtf.
getText());
switch (this.temp) {
case 1:
result = fnumber + bnumber;
this.
jtf.
setText(String.
valueOf(result
));
break;
case 2:
result = fnumber - bnumber;
this.
jtf.
setText(String.
valueOf(result
));
break;
case 3:
result = fnumber * bnumber;
this.
jtf.
setText(String.
valueOf(result
));
break;
case 4:
result = fnumber / bnumber;
this.
jtf.
setText(String.
valueOf(result
));
break;
}
} else {
jtf.setText(jtf.getText() + e.getActionCommand());
}
}
public static void main
(String[] args
) {
new Calculater();
}
}