📄 tfmath.java
字号:
/*****
* 内部类的好处.只有自己访问,别人无法访问.
*/
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -