JavaGUI 06 输入框监听

3.2 输入框监听


3.2.1 TextFiled 单行输入框

它在 AWT 库里面,有很多事件。
在这里插入图片描述
我们现在就举例其中一个 事件。actionPerformed() 意思是执行的动作。

所谓 组件的执行动作,不就是 一个组件最原本的功能吗?比如说 :输入框 输入完 东西,按下回车会怎么样。按钮被按下,会怎么样。

Ctrl+O 查看需要生成的所有方法。

Ctrl+I 查看当前最需要生成的方法。

容器.pack() 是 Java 提供的方法,用来自动 选择 最优布局。

  • 获取到单行输入框的内容
package com.muquanyu.leeson02;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestTextArea {
    public static void main(String[] args) {
        MyFrame frame = new MyFrame();
        //启动!
    }
}
class MyFrame extends Frame{
    public MyFrame()
    {
        TextField textField = new TextField();

        add(textField);

        NewActionListener newActionListener = new NewActionListener();
        //监听这个文本框输入的文字
        textField.addActionListener(newActionListener);

        setVisible(true);
        pack();//自动布局

    }
}
class NewActionListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        //获得一些 资源
        TextField t = (TextField)e.getSource();//ActionEvent 的 父类是 Object 类的
        //所以可以进行 向下转换,因为 我们不知道 接收过来的 e 到底是什么类型的。
        //但是我们可以确定的是,开发者 是知道 这个 类型的!所以要进行 转换,才能够 使用
        //这个 接收过来的 对象(组件) 的方法。

        System.out.println(t.getText());

    }
}

接收过来的 组件对象,被 ActionEvent 转换了,所以我们会发现我们 无法使用 该组件的方法,比如说 获取 单行输入框的内容。 getText()。就无法使用。


解决方法很简单,就是 再转换回去 就行了呗。所以我们进行了强转!
在这里插入图片描述

  • 添加 密文封装和自动清空 的功能
package com.muquanyu.leeson02;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestTextArea {
    public static void main(String[] args) {
        MyFrame frame = new MyFrame();
        //启动!
    }
}
class MyFrame extends Frame{
    public MyFrame()
    {
        TextField textField = new TextField();
        textField.setEchoChar('*');//设定 每个 字符 都是 显示为 * 这个字符!
        //这样就实现了 密文。。

        add(textField);

        NewActionListener newActionListener = new NewActionListener();
        //监听这个文本框输入的文字
        textField.addActionListener(newActionListener);

        setVisible(true);
        pack();//自动布局

    }
}
class NewActionListener implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        //获得一些 资源
        TextField t = (TextField)e.getSource();//ActionEvent 的 父类是 Object 类的
        //所以可以进行 向下转换,因为 我们不知道 接收过来的 e 到底是什么类型的。
        //但是我们可以确定的是,开发者 是知道 这个 类型的!所以要进行 转换,才能够 使用
        //这个 接收过来的 对象(组件) 的方法。

        System.out.println(t.getText());
        t.setText("");//必须放在 System.out.println(t.getText());的后面,先后顺序的问题
        //如果你放在前面,功能就会失效。

    }
}

setEchoChar() 方法 可以实现密文
setText("") 方法 可以实现清空内容


3.2.1 TextArea 文本域

它跟 TextField 不一样,它是 允许多行的,而TextField 只允许 单行。

在这里插入图片描述
首次创建该对象,会让你提供三个参数,第一个是默认文本,第二个是行数,第三个是列数。
当然你也可以仅提供两个参数,或者一个,详细的参数表,请 Ctrl+鼠标左键 进入它的源代码 查看。

在这里插入图片描述
拥有的事件:
在这里插入图片描述

详细的我们也就不举例子的,其实都是大同小异的。很简单的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值