package Calculator;
/**
*
* @author wanlin
*/
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.*;
import javax.swing.JOptionPane;
public class Calculator1 extends JFrame implements ActionListener{
JTextField text1;
JTextField text2;
JButton button1,button2,button3;
JButton button4;
String[] str = {"MC","7","8","9","÷","sqrt","MR","4","5","6","×","exp",
"MS","1","2","3","-","log","M+","0","+/-",".","+","="};
int i;
boolean wanlin = true;
Calculator1(){
super("小小计算器--Wanlin");
setVisible(true);
setBounds(500,100,380,202);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setResizable(false);
init();
}
void init(){
JButton[] buttons = new JButton[str.length];
button1 = new JButton("Backspace");
button2 = new JButton(" CE ");
button3 = new JButton(" C ");
button4 = new JButton("关于");
text1 = new JTextField("0");
text2 = new JTextField();
text2.setBackground(Color.GREEN);
Panel pane1 = new Panel();
Panel pane2 = new Panel();
Panel pane3 = new Panel(new GridLayout(4,6,3,3));
for(int i = 0;i
buttons[i] = new JButton(str[i]);
pane3.add(buttons[i]);
}
pane1.setLayout(new BorderLayout());
pane1.add("Center",text1);
pane1.add("East",button4);
pane2.add(text2);
pane2.add(button1);
pane2.add(button2);
pane2.add(button3);
add("North",pane1);
add("Center",pane2);
add("South",pane3);
SimpleDateFormat time = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
text2.setText(time.format(new Date()));
for(i = 0;i
buttons[i].addActionListener(this);
}
// button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
button4.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(null,"万 林","小组成员:",JOptionPane.INFORMATION_MESSAGE);
}
});
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
if(Double.parseDouble(text1.getText()) > 0){
if(text1.getText().length() > 1){
text1.setText(text1.getText().substring(0,text1.getText().length() - 1));
}
else{
text1.setText("0");
wanlin = true;
}
}
}
});
}
@Override
public void actionPerformed(ActionEvent e){
// String tex1 = text1.getText();
String tex1 = e.getActionCommand();
// int x = Integer.parseInt(tex1);
Object source = e.getSource();
String nums = "0123456789.";
try{
if(source == button3 ||source == button2){
text1.setText("0");
wanlin = true;
}
else if(nums.indexOf(tex1)>=0){
num(tex1);
}
else{
opera(tex1);
}
}
catch(Exception ex){
text1.setText("输入有误!");
}
}
public void num(String data){
String tex2 = text1.getText();
if (wanlin){
text1.setText(data);
}
else if(data.equals(".") && tex2.indexOf(".")<0){
text1.setText(tex2+".");
}
else if(!data.equals(".")){
text1.setText(tex2+data);
}
wanlin = false;
}
double numberResult = 0.0;
String equ = "=";
public void opera(String ss){
double number = Double.valueOf(text1.getText());
if(equ.equals("+")){
// text1.setText("");
numberResult += number;
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("-")){
// text1.setText("");
numberResult -= number;
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("×")){
// text1.setText("");
numberResult *= number;
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("÷")){
// text1.setText("");
numberResult /= number;
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("sqrt")){
if(i>=0){
numberResult = Math.sqrt(number);
// text1.setText(String.valueOf(numberResult));
}
else{
text1.setText("负数能开平方根吗?");
}
}
else if(equ.equals("log")){
numberResult = Math.log(number);
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("exp")){
numberResult = Math.exp(number); //
// text1.setText(String.valueOf(numberResult));
}
else if(equ.equals("=")){
numberResult = number;
}
text1.setText(String.valueOf(numberResult));
equ = ss;
wanlin = true;
}
public static void main(String[] args){
new Calculator1();
}
}