GUI学习入门(四)

GUI学习-监听文本框

GUI学习设置文本框,并监听文本框输入文本,转发至控制台,并学会加密输入文本

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestField {
    public static void main(String[] args) {
        // main 方法应该只含有启动
        new MyFrame();
    }
}
class MyFrame extends Frame{
    public MyFrame(){
        TextField textField = new TextField();
        add(textField);
        // 监听这个文本框输入文字
        MyActionListenerTwo myActionListenerTwo = new MyActionListenerTwo();
        // 摁下回车就会触发输入框事件
        textField.addActionListener(myActionListenerTwo);
        // 设置替换编码
        textField.setEchoChar('*');
        pack();
        setVisible(true);

    }
}
class MyActionListenerTwo implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        TextField field = (TextField) e.getSource(); // 获得一些资源 返回的一个对象
        System.out.println(field.getText());// 获得输入框中的文本
        field.setText(""); // null
        
    }
}

以上则是简单的文本框监听,下面通过一个计算器创作来熟悉文本框监听内容

package Study.Java.JavaGUI.GUIGames;

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 TextCalc {
    public static void main(String[] args) {
        new Calculator();
    }

}
// 计算器类
class Calculator extends Frame{
    public Calculator(){
        // 三个文本框 一个按钮 一个标签
        TextField textField1 = new TextField(10);
        TextField textField2 = new TextField(10);
        TextField textField3 = new TextField(20);

        Button button = new Button("=");
        button.addActionListener(new  MyCalcListener(textField1,textField2,textField3));
        Label label = new Label("+");

        setLayout(new FlowLayout());
        add(textField1);
        add(label);
        add(textField2);
        add(button);
        add(textField3);
        pack();
        setVisible(true);
        WindowOver(this);
    }
    private static void WindowOver(Frame frame){
        frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
}
// 监听器
class MyCalcListener implements ActionListener{
    // 获取三个变量
    private TextField textField1,textField2,textField3;
    public MyCalcListener(TextField textField1,TextField textField2,TextField textField3) {
        this.textField1 = textField1;
        this.textField2 = textField2;
        this.textField3 = textField3;
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // 获得两个数 加法运算后放入第三个框 清除前两个数
        int num1 = Integer.parseInt(textField1.getText());
        int num2 = Integer.parseInt(textField2.getText());
        textField3.setText("" + (num1 + num2));
        textField1.setText("");
        textField2.setText("");
    }
}

运行结果为:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值