tfmath.java

来自「* 本章非重点,但可以串联运用前面所有的知识点.顺带理解内部类 * awt图」· Java 代码 · 共 51 行

JAVA
51
字号
/*****
 * 内部类的好处.只有自己访问,别人无法访问.
 */
import java.awt.*;
import java.awt.event.*;

public class TFMath {
	public static void main(String[] args) {
		new TFFrame().launchFrame();
	}
}
//从Frame继承的类,目的是为了添加自己的变量
class TFFrame extends Frame {
	TextField num1, num2, num3;
	public void launchFrame() {
		num1 = new TextField(10);//添加文本输入栏//宽度10
		num2 = new TextField(10);
		num3 = new TextField(15);
		Label lblPlus = new Label("+");//代表 +  符号
		Button btnEqual = new Button("="); //添加  =  按键
		
		btnEqual.addActionListener(new MyMonitor());//按键添加事件监听
		
		setLayout(new FlowLayout());//设置布局管理 ,从左到右
		add(num1); //加入 第一个栏
		add(lblPlus);//加入 +
		add(num2);// 加入  第二个栏
		add(btnEqual); //加入  = 按键
		add(num3);// 加入 第三个栏 
		pack();//自动 设置大小
		setVisible(true);//显示
	}
	//添加内部类  //为什么添加内部类
	/***
	 * 由于监听的是按键,但是 文本输入栏是局部变量,他的输入事件无法被监听到
	 * 所以必须设置到内部类中,这样 输入栏的消息事件就能够被获取到.相当于把输入栏的局部变量变为监听类的成员变量
	 * 当然,如果不用内部类或成员变量的方法也可以,把MyMonitor方法设置参数,每个参数都是输入栏类的对象
	 * 然后用this 构造传递.或把TFFrame作为类 创建对象,把该对象在MyMonitor构造中自己传递(门面模式,呵呵)
	 * 不过这样的方法很不好.所以建议内部类
	 * 
	 * 
	 */
	private class MyMonitor implements ActionListener  {//设置事件监听
		public void actionPerformed(ActionEvent e) {
			int n1 = Integer.parseInt(num1.getText());//获取输入栏信息并转化int 类型
			int n2 = Integer.parseInt(num2.getText());
			num3.setText("" + (n1+n2));
		}
	}
	
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?