前言:
管中窥豹—其余运算同理可设计
作品展示:
代码区:(面向过程写法)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//开始
public class TestCounter {
public static void main(String[] args) {
Calculator calculator = new Calculator();
}
}
//计算器类
class Calculator extends Frame {
public Calculator() {
//三个文本框
TextField a1 = new TextField(10);//最大计算输入字符数
TextField a2 = new TextField(10);
TextField a3 = new TextField(20);
// 一个按钮
Button button = new Button("=");
button.setBackground(new Color(224, 226, 82));
// 一个‘+’标签
Label label = new Label("+");
label.setBackground(new Color(231, 167, 71));
Label label02 = new Label("get sum");
//布局--流式布局
setLayout(new FlowLayout(FlowLayout.LEFT));
add(a1);
add(label);
add(a2);
add(button);
add(a3);
add(label02);
setVisible(true);
//给按钮一个监听器
button.addActionListener(new Mylistener(a1, a2, a3));
//设置大小
setBounds(200, 200, 600, 400);
//背景颜色
setBackground(Color.lightGray);
addWindowListener(new WindowAdapter() {//创建一个适配器
//窗口点击关闭的时候需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
//监听器类
class Mylistener implements ActionListener {
TextField num1, num2, num3;
//定义三个变量
public Mylistener(TextField num1, TextField num2, TextField num3) {
this.num1 = num1;
this.num2 = num2;
this.num3 = num3;
// if(num1.equals("")&&num2.equals(""))
}
@Override
public void actionPerformed(ActionEvent e) {
//获得加数和被加数
int a1 = Integer.parseInt(num1.getText());
int a2 = Integer.parseInt(num2.getText());
//运算并放入第三个框
int sum = a1 + a2;
num3.setText(sum + "");
//清除文本框
num1.setText("");
num2.setText("");
}
}
优化!——使用组合类(半个面向对象)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//开始
public class TestCounter {
public static void main(String[] args) {
Calculator calculator = new Calculator();
}
}
//计算器类
class Calculator extends Frame {
TextField num1, num2, num3;
public Calculator() {
//三个文本框
num1 = new TextField(10);//最大计算输入字符数
num2 = new TextField(10);
num3 = new TextField(20);
// 一个按钮
Button button = new Button("=");
button.setBackground(new Color(224, 226, 82));
// 一个‘+’标签
Label label = new Label("+");
label.setBackground(new Color(231, 167, 71));
Label label02 = new Label("get sum");
//布局--流式布局
setLayout(new FlowLayout(FlowLayout.LEFT));
add(num1);
add(label);
add(num2);
add(button);
add(num3);
add(label02);
setVisible(true);
//给按钮一个监听器
button.addActionListener(new Mylistener(this));
//设置大小
setBounds(200, 200, 600, 400);
//背景颜色
setBackground(Color.lightGray);
addWindowListener(new WindowAdapter() {//创建一个适配器
//窗口点击关闭的时候需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
}
//监听器类
class Mylistener implements ActionListener {
Calculator calculator = null;
//定义三个变量
public Mylistener(Calculator calculator) {
this.calculator = calculator;
}
@Override
public void actionPerformed(ActionEvent e) {
//获得加数和被加数
// 运算并放入第三个框
// 清除文本框
int a1 = Integer.parseInt(calculator.num1.getText());
int a2 = Integer.parseInt(calculator.num2.getText());
calculator.num3.setText((a1 + a2) + "");
calculator.num1.setText("");
calculator.num2.setText("");
}
}
再优化!——内部类(面向对象,更好的包装)
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
//开始
public class TestCounter {
public static void main(String[] args) {
Calculator calculator = new Calculator();
}
}
//计算器类
class Calculator extends Frame {
TextField num1, num2, num3;
public Calculator() {
//三个文本框
num1 = new TextField(10);//最大计算输入字符数
num2 = new TextField(10);
num3 = new TextField(20);
// 一个按钮
Button button = new Button("=");
button.setBackground(new Color(224, 226, 82));
// 一个‘+’标签
Label label = new Label("+");
label.setBackground(new Color(231, 167, 71));
Label label02 = new Label("get sum");
//布局--流式布局
setLayout(new FlowLayout(FlowLayout.LEFT));
add(num1);
add(label);
add(num2);
add(button);
add(num3);
add(label02);
setVisible(true);
//给按钮一个监听器
button.addActionListener(new Mylistener());
//设置大小
setBounds(200, 200, 600, 400);
//背景颜色
setBackground(Color.lightGray);
addWindowListener(new WindowAdapter() {//创建一个适配器
//窗口点击关闭的时候需要做的事情
@Override
public void windowClosing(WindowEvent e) {
//结束程序
System.exit(0);
}
});
}
//监听器内部类
private class Mylistener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
int a1 = Integer.parseInt(num1.getText());
int a2 = Integer.parseInt(num2.getText());
//运算并放入第三个框
int sum = a1 + a2;
num3.setText(sum + "");
//清除文本框
num1.setText("");
num2.setText("");
}
}
}