5、输入框TextField -->被监听
package com.kuang.lesson02;
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 TestTextField {
public static void main(String[] args) {
//以后的main 方法只会有一个启动程序
new MyFrame();
}
}
class MyFrame extends Frame{
public MyFrame(){
TextField textField = new TextField();
//因为继承了Frame 所以直接add 就可以了
add(textField);
//监听这个文本框输入的文字
MyActionListener2 myActionListener2 = new MyActionListener2();
//按下enter就会触发事件
textField.addActionListener(myActionListener2);
//设置替换编码
textField.setEchoChar('*');
//setSize(400,400);
//setLocation(500,500);
setBounds(300,400,200,100);
setVisible(true);
//pack();
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
}
class MyActionListener2 implements ActionListener{
@Override
public void actionPerformed(ActionEvent e) {
TextField field = (TextField) e.getSource(); // 获得一些资源 ---》 返回一个对象
System.out.println(field.getText()); //获得输入的文本框
field.setText("");
}
}
6、简易计算器、组合加内部类
一个项目的设计:首先是用到哪些类,其次是用到哪些组件、组件弄好了之后,开始构思布局
项目题目:设计一个简易计算器,并实现其功能、
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-THyU9Q8R-1593704382083)(C:\Users\86186\AppData\Roaming\Typora\typora-user-images\image-20200626141223125.png)]
分析:
一个Frame 框,里面有3个文本框,然后一个标签,还有 = 的按钮,= 按钮添加监听事件,点击时,获取前面两个数字相加,然后放在第三个文本框里面,然后清除前面两个文本框的内容、
package com.kuang.lesson02;
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 TestCalculator {
//简易计算器
public static void main(String[] args) {
new Calculator();
}
}
//计算器类
class Calculator extends Frame{
public Calculator(){
//3个文本框
TextField num1 = new TextField(10); //最大字符数
TextField num2 = new TextField(10); //最大字符数
TextField num3 = new TextField(20); //最大字符数
//1个按钮
Button button = new Button("=");
button.addActionListener(new MyCalculatorListener(num1,num2,num3));
//1个标签
Label label1 = new Label("+");
//布局
setLayout(new FlowLayout());
//添加组件
add(num1);
add(label1);
add(num2);
add(button);
add(num3);
pack();
setVisible