一个很简单的例子
希望各位大神指导指导。
package calculator;
import java.awt.BorderLayout;
import java.awt.GridLayout;
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.JTextArea;
/**
* @author:fulunyong
* @email:fulunyong@qq.com
* @datetime:2015年8月19日下午4:27:36
* @version 1.0
* @serial 简单的JAVA计算器
*/
public class Calculator extends JFrame{
private JTextArea show;
private String temp="";//临时字符串
private String a="";//参数a
private String b="";//参数b
private Double reset=0.0;//结果
private Character flag=null;//运算符
private static final long serialVersionUID = -1340732273401597053L;
public static void main(String[] args){
new Calculator();
}
public Calculator(){
setSize(700, 800);
setVisible(true);
setTitle("计算器");
setResizable(false);//禁用窗口大小
setLocationRelativeTo(null);//居中出现
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击关闭窗口时推出
show=new JTextArea();//初始化文本框用于显示
show.setEditable(false);
//添加文本框到默认布局管理器的北方
this.add(show,BorderLayout.NORTH);
JButton num0=new JButton("0");
JButton num1=new JButton("1");
JButton num2=new JButton("2");
JButton num3=new JButton("3");
JButton num4=new JButton("4");
JButton num5=new JButton("5");
JButton num6=new JButton("6");
JButton num7=new JButton("7");
JButton num8=new JButton("8");
JButton num9=new JButton("9");
JButton addition=new JButton("+");
JButton subtraction=new JButton("-");
JButton multiplication=new JButton("*");
JButton division=new JButton("/");
JButton point=new JButton(".");
JButton equal=new JButton("=");
class OnClickLister implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
char ch=e.getActionCommand().charAt(0);
if('0'<=ch&&ch<='9'){
temp+=ch;
if(null!=flag){
show.setText(a+flag+temp);
}else {
show.setText(temp);
}
}else if ('.'==ch){
if ("".equals(temp)) {
temp="0.";
} else {
temp+=ch;
}
if(null!=flag){
show.setText(a+flag+temp);
}else {
show.setText(temp);
}
}else if ('+'==ch){
a=temp;
temp="";
flag='+';
show.setText(a+"+");
}else if ('-'==ch){
a=temp;
temp="";
flag='-';
show.setText(a+"-");
}else if ('*'==ch){
a=temp;
temp="";
flag='*';
show.setText(a+"*");
}else if ('/'==ch){
a=temp;
temp="";
flag='/';
show.setText(a+"/");
}else if ('='==ch){
b=temp;
temp="";
if (null!=flag){
switch (flag) {
case '+':
reset=Double.parseDouble(a)+Double.parseDouble(b);
break;
case '-':
reset=Double.parseDouble(a)-Double.parseDouble(b);
break;
case '*':
reset=Double.parseDouble(a)*Double.parseDouble(b);
break;
case '/':
reset=Double.parseDouble(a)/Double.parseDouble(b);
break;
default:
break;
}
show.setText(a+flag+b+"="+reset);
flag=null;
a="";
b="";
}
}
}
}
//添加按钮点击事件
OnClickLister lister=new OnClickLister();
num0.addActionListener(lister);
num1.addActionListener(lister);
num2.addActionListener(lister);
num3.addActionListener(lister);
num4.addActionListener(lister);
num5.addActionListener(lister);
num6.addActionListener(lister);
num7.addActionListener(lister);
num8.addActionListener(lister);
num9.addActionListener(lister);
addition.addActionListener(lister);
subtraction.addActionListener(lister);
multiplication.addActionListener(lister);
division.addActionListener(lister);
point.addActionListener(lister);
equal.addActionListener(lister);
//面板对象
JPanel jPanelBn=new JPanel();
//网格布局4x4
GridLayout gridLayout=new GridLayout(4, 4);
//设置面板对象的布局方式
jPanelBn.setLayout(gridLayout);
jPanelBn.add(num7);
jPanelBn.add(num8);
jPanelBn.add(num9);
jPanelBn.add(addition);
jPanelBn.add(num4);
jPanelBn.add(num5);
jPanelBn.add(num6);
jPanelBn.add(subtraction);
jPanelBn.add(num1);
jPanelBn.add(num2);
jPanelBn.add(num3);
jPanelBn.add(multiplication);
jPanelBn.add(num0);
jPanelBn.add(point);
jPanelBn.add(equal);
jPanelBn.add(division);
//添加面板到窗体
this.add(jPanelBn,BorderLayout.CENTER);
}
}