import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class MainTest{
JFrame frame; //顶级窗口
JPanel panel1; //panel1
JTextField textField; //文本框
JPanel panel2; //panel2
JButton[] buttons; //按钮数组
String[] str;
int[] sum;
int n=0,m=0,p=0;
public static void main(String[] args){
MainTest glt = new MainTest();
glt.go();
}
public void go(){
frame = new JFrame(); //生成顶级窗口
panel1 = new JPanel(); //生成panel1
textField = new JTextField(20); //生成textfield
panel1.add(textField); //把文本框增加到panel1中
frame.getContentPane().add(panel1,BorderLayout.NORTH); //把panel1增加到frame
panel2 = new JPanel(); //panel2
panel2.setLayout(new GridLayout(3,5,4,4)); //设置panel2为Grid布局
String[] name = {"0","1","2","3","4","5","6","7","8","9",
"+","-","*","/","="}; //生成字符串数组,做为button上面的文字
buttons = new JButton[name.length]; //生成button数组,便于统一管理
str=new String[name.length];
sum=new int[name.length];
//用循环,开始对号入座,把字符串的值分配给新生成的button
for(int i = 0; i < name.length; i++){
buttons[i] = new JButton(name[i]);
panel2.add(buttons[i]);
}
for (int i=0;i<name.length;i++){
if (name[i].equals("0")){
buttons[i].addActionListener(new TextActionListener0());
}
if (name[i].equals("1")){
buttons[i].addActionListener(new TextActionListener1());
}
if (name[i].equals("2")){
buttons[i].addActionListener(new TextActionListener2());
}
if (name[i].equals("3")){
buttons[i].addActionListener(new TextActionListener3());
}
if (name[i].equals("4")){
buttons[i].addActionListener(new TextActionListener4());
}
if (name[i].equals("5")){
buttons[i].addActionListener(new TextActionListener5());
}
if (name[i].equals("6")){
buttons[i].addActionListener(new TextActionListener6());
}
if (name[i].equals("7")){
buttons[i].addActionListener(new TextActionListener7());
}
if (name[i].equals("8")){
buttons[i].addActionListener(new TextActionListener8());
}
if (name[i].equals("9")){
buttons[i].addActionListener(new TextActionListener9());
}
if (name[i].equals("+")){
buttons[i].addActionListener(new TextActionListener10());
}
if (name[i].equals("-")){
buttons[i].addActionListener(new TextActionListener11());
}
if (name[i].equals("*")){
buttons[i].addActionListener(new TextActionListener12());
}
if (name[i].equals("/")){
buttons[i].addActionListener(new TextActionListener13());
}
if (name[i].equals("=")){
buttons[i].addActionListener(new TextActionListener14());
}
}
frame.getContentPane().add(panel2,BorderLayout.SOUTH);//把panel2增加到frame
frame.setSize(300,300);
frame.pack();
frame.setVisible(true);
}
class TextActionListener0 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("0");
sum[n]=0;
n=n+1;
}
}
class TextActionListener1 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("1");
sum[n]=1;
n=n+1;
}
}
class TextActionListener2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("2");
sum[n]=2;
n=n+1;
}
}
class TextActionListener3 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("3");
sum[n]=3;
n=n+1;
}
}
class TextActionListener4 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("4");
sum[n]=4;
n=n+1;
}
}
class TextActionListener5 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("5");
sum[n]=5;
n=n+1;
}
}
class TextActionListener6 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("6");
sum[n]=6;
n=n+1;
}
}
class TextActionListener7 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("7");
sum[n]=7;
n=n+1;
}
}
class TextActionListener8 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("8");
sum[n]=8;
n=n+1;
}
}
class TextActionListener9 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("9");
sum[n]=9;
n=n+1;
}
}
class TextActionListener10 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("+");
str[m]="+";
m=m+1;
if (m>1){
if (str[m-1].equals("+")){
sum[p+1]=sum[p]+sum[p+1];
}
if (str[m-1].equals("-")){
sum[p+1]=sum[p]-sum[p+1];
}
if (str[m-1].equals("*")){
sum[p+1]=(sum[p])*(sum[p+1]);
}
if (str[m-1].equals("/")){
sum[p+1]=(sum[p])/(sum[p+1]);
}
p=p+1;
textField.setText(String.valueOf(sum[p]));
System.out.println(sum[p]);
}
}
}
class TextActionListener11 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("-");
str[m]="-";
m=m+1;
if (m>1){
if (str[m-1].equals("+")){
sum[p+1]=sum[p]+sum[p+1];
}
if (str[m-1].equals("-")){
sum[p+1]=sum[p]-sum[p+1];
}
if (str[m-1].equals("*")){
sum[p+1]=(sum[p])*(sum[p+1]);
}
if (str[m-1].equals("/")){
sum[p+1]=(sum[p])/(sum[p+1]);
}
p=p+1;
textField.setText(String.valueOf(sum[p]));
System.out.println(sum[p]);
}
}
}
class TextActionListener12 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("*");
str[m]="*";
m=m+1;
if (m>1){
if (str[m-1].equals("+")){
sum[p+1]=sum[p]+sum[p+1];
}
if (str[m-1].equals("-")){
sum[p+1]=sum[p]-sum[p+1];
}
if (str[m-1].equals("*")){
sum[p+1]=(sum[p])*(sum[p+1]);
}
if (str[m-1].equals("/")){
sum[p+1]=(sum[p])/(sum[p+1]);
}
p=p+1;
textField.setText(String.valueOf(sum[p]));
System.out.println(sum[p]);
}
}
}
class TextActionListener13 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
textField.setText("/");
str[m]="/";
m=m+1;
if (m>1){
if (str[m-1].equals("+")){
sum[p+1]=sum[p]+sum[p+1];
}
if (str[m-1].equals("-")){
sum[p+1]=sum[p]-sum[p+1];
}
if (str[m-1].equals("*")){
sum[p+1]=(sum[p])*(sum[p+1]);
}
if (str[m-1].equals("/")){
sum[p+1]=(sum[p])/(sum[p+1]);
}
p=p+1;
textField.setText(String.valueOf(sum[p]));
System.out.println(sum[p]);
}
}
}
class TextActionListener14 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
// for (int i=0;!str[i].equals("=");i++){
// if (str[i].equals("+")){
// sum[p+1]=sum[p]+sum[p+1];
// }
// if (str[i].equals("-")){
// sum[p+1]=sum[p]-sum[p+1];
// }
// if (str[i].equals("*")){
// sum[p+1]=(sum[p])*(sum[p+1]);
// }
// if (str[i].equals("/")){
// sum[p+1]=(sum[p])/(sum[p+1]);
// }
// p=p+1;
// }
// textField.setText(String.valueOf(sum[p]));
// System.out.println(str[0]);
// int i=0;
// if (str[i].equals("+")){
// sum[p+1]=sum[p]+sum[p+1];
// i=i+1;
// }
int i=0;
if (str[i].equals("+")){
sum[p+1]=sum[p]+sum[p+1];
}
if (str[i].equals("-")){
sum[p+1]=sum[p]-sum[p+1];
}
if (str[i].equals("*")){
sum[p+1]=(sum[p])*(sum[p+1]);
}
if (str[i].equals("/")){
sum[p+1]=(sum[p])/(sum[p+1]);
}
p=p+1;
textField.setText(String.valueOf(sum[p]));
System.out.println(sum[p]);
// System.out.println(sum[p]+" "+sum[p+1]);
// int i=0;
// if (str[i].equals("+")){
// System.out.println(str[i]);
// System.out.println(sum[p]);
// System.out.println(sum[p+1]);
// System.out.println(sum[p+1]=sum[p]+sum[p+1]);
// }
// if (str[i].equals("-")){
// System.out.println(str[i]);
// System.out.println(sum[p]);
// System.out.println(sum[p+1]);
// System.out.println(sum[p+1]=sum[p]-sum[p+1]);
// }
}
}
}
可能存在一些bug,望指正!
Java简单计算器实现方法
猜你喜欢
转载自www.cnblogs.com/SL668/p/10907979.html
今日推荐
周排行