import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.rmi.server.Operation;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Calculator extends JFrame{
public String num="0";
public double num1=0;
// public double num2=0;
// public double result=0;
public JTextField textArea;
public JButton jb0;
public JButton jb1;
public JButton jb2;
public JButton jb3;
public JButton jb4;
public JButton jb5;
public JButton jb6;
public JButton jb7;
public JButton jb8;
public JButton jb9;
public JButton jb14;
public JButton jb24;
public JButton jb34;
public JButton jb42;
public JButton jb43;
public JButton jb44;
public Calculator(){
setTitle("计算器");
setSize(400, 400);
setLocationRelativeTo(null);
JPanel p = new JPanel();
p.setLayout(new GridLayout(3,1,0,4));
setLayout(new BorderLayout(20,50));
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
p2.setLayout(new GridLayout(4,4,4,4));
p.add(p1, BorderLayout.CENTER);
textArea=new JTextField("0");
jb7=new JButton("7");
jb8=new JButton("8");
jb9=new JButton("9");
jb14=new JButton("/");
jb4=new JButton("4");
jb5=new JButton("5");
jb6=new JButton("6");
jb24=new JButton("*");
jb1=new JButton("1");
jb2=new JButton("2");
jb3=new JButton("3");
jb34=new JButton("-");
jb0=new JButton("0");
jb42=new JButton(".");
jb43=new JButton("=");
jb44=new JButton("+");
textArea.setSize(400, 80);
textArea .setHorizontalAlignment(SwingConstants.RIGHT);
textArea. setFont(new Font("黑体",Font.BOLD,50));
// 将组件添加到容器中
add(textArea);
p2. add(jb7);
p2. add(jb8);
p2. add(jb9);
p2. add(jb14);
p2. add(jb4);
p2. add(jb5);
p2. add(jb6);
p2. add(jb24);
p2. add(jb1);
p2. add(jb2);
p2. add(jb3);
p2. add(jb34);
p2. add(jb0);
p2. add(jb42);
p2. add(jb43);
p2. add(jb44);
add(p2);
add(p, BorderLayout.NORTH);
add(p2, BorderLayout.CENTER);
// 注册事件监听器
MyActionListenner myActionListenner=new MyActionListenner();
MyActionListenner myActionListenner2=new MyActionListenner();
jb7.addActionListener(myActionListenner);
jb8.addActionListener(myActionListenner);
jb9.addActionListener(myActionListenner);
jb14.addActionListener(myActionListenner2);
jb4.addActionListener(myActionListenner);
jb5.addActionListener(myActionListenner);
jb6.addActionListener(myActionListenner);
jb24.addActionListener(myActionListenner2);
jb1.addActionListener(myActionListenner);
jb2.addActionListener(myActionListenner);
jb3.addActionListener(myActionListenner);
jb34.addActionListener(myActionListenner2);
jb0.addActionListener(myActionListenner);
jb42.addActionListener(myActionListenner2);
jb43.addActionListener(myActionListenner2);
jb44.addActionListener(myActionListenner2);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false); //禁止缩放
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
//数字事件监听器
class MyActionListenner implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
Object object=e.getSource();
JButton button=(JButton)object;
num1=Double.parseDouble( num);
String a=button.getText();
if(Double.parseDouble(num)==0){
num=String.valueOf(a);
textArea.setText(num);
}
else {
num+=String.valueOf(a);
textArea.setText(num);
}
}
}
//操作命令事件监听器
class MyActionListenner1 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
Object object=e.getSource();
JButton button=(JButton)object;
String operator = "=";
num1=Double.parseDouble( num);
operator=button.getText();
if(operator.equals("+")){
num1 += Double.valueOf(textArea.getText());
} else if (operator.equals("-"))
num1 -= Double.valueOf(textArea.getText());
else if (operator.equals("*"))
num1 *= Double.valueOf(textArea.getText());
else if (operator.equals("/"))
num1 /= Double.valueOf(textArea.getText());
else if (operator.equals("="))
num1 = Double.valueOf(textArea.getText());
textArea.setText(String.valueOf(textArea));
}
}
}