Java的点击事件监听器

一,动作事件

·按钮类的作者是否知道你要使用按钮类创建的对象用于什么功能?不知道
        ·预设一个方法模板,底层实现了调用的逻辑
        ·点击按钮之后,就会调用这个方法,方法模板中没有任何可以执行的代码
        ·我们需要做的事情,创建一个类 引入这个模板 添加需要执行的代码
        ·将我们自己创建的类 创建一个对象,加载给按钮对象
·动作监听器: ActionListener
·实现步骤:
        ·1: 创建一个自己类,BtnAction 实现 ActionListener
                ·public classs BtnAction implements ActionListener{ }
        ·2: 将方法模板 复制这个类中,添加对应的代码
package comsum.oop1.yzy0704;
import java.awt.event.ActionEvent;
import java.awt.enent.ActionListener;
public class BtnAction implements ActionListener {
 int count=0;
 // 复制方法模板 改分号为大括号
 public void actionPerformed(ActionEvent e){
 // 写点击按钮时 要调用的代码
 System.out.println("点击了按钮 " +count+" 次" );
 count++;
 }
}
        ·3:将我们自己创建的类BtnAction 创建一个对象,加载给按钮对象

二,区分不同的按钮

·事件对象:ActionEvent e 一件事的记录者
        ·包含了点击按钮时的相关数据 比如: 按钮的文本
        ·String ac = e.getActionCommand();
        ·通过获取的按钮文本 实现判断,使用 equals来判断两个字符串
if (ac.equals("登录")) {
 System.out.println("点击了按钮 " + ac + count1 + " 次");
 count1++;
 if(name.equals("yzy")&&pwd.equals("yzy123")){
 // 再写一个界面
 JFrame jf = new JFrame();
 jf.setTitle("登录成功");
 jf.setVisible(true);
 }else{
 System.out.println("密码错误");
 }
 } else if (ac.equals("注册")) {
 System.out.println("点击了按钮 " + ac + count2 + " 次");
 count2++;
 }

三,获取输入框中的文本:

        ·输入框: nameIn
                ·可以使用 String name = nameIn.getText();
        ·需要传递一份引用到btnAction中 nameIn2 / pwdIn2

界面代码:

package comsum.oop1.yzy0704 ;
import javax.swing.*;
import java.awt.*;
public class LoginUI {
 public void showUI() {
 // 创建窗体对象
 JFrame jf = new JFrame();
 jf.setTitle("登录界面");
 jf.setSize(400, 450);
 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 点击关闭按钮时 退出进程
 FlowLayout flow = new FlowLayout();
 jf.setLayout(flow);
 jf.setLocation(500, 200);
 // 图片
 ImageIcon icon = new ImageIcon(
 "C:\\Users\\ZLYLF\\Desktop\\loginicon.png");
 JLabel iconJla = new JLabel(icon);// 用于存放图标的标签
 jf.add(iconJla);
 // 标签 可以只显示文本或者图片
 JLabel nameJla = new JLabel("账号:");
 jf.add(nameJla);
 // 单行文本输入框
 JTextField nameIn = new JTextField(30);// 默认显示宽度为30字符宽
 jf.add(nameIn);
 JLabel pwdJla = new JLabel("密码:");
 jf.add(pwdJla);
 // 单行密码输入框
 JPasswordField pwdIn = new JPasswordField(30);
 jf.add(pwdIn);
 JButton btn = new JButton("登录");
 jf.add(btn);
 JButton btn1 = new JButton("注册");
 jf.add(btn1);
 jf.setVisible(true); // 显示到屏幕上
 // 创建按钮点击动作对象 ,加载给按钮 使用的是按钮自己的addActionListener
 BtnAction btnAc = new BtnAction();
 btn.addActionListener(btnAc);
 btn1.addActionListener(btnAc);
 // 传引用
 btnAc.nameIn2 = nameIn;// 这行代码 实现之后 nameIn2 与 nameIn指向的是同一个输入框
 btnAc.pwdIn2 = pwdIn;
 }
comsum.oop1.zyf0704
javax.swing.
java.awt. public static void main(String[] args) {
 LoginUI loginUI = new LoginUI();
 loginUI.showUI();
 }
}

监听器代码:

package cosum.oop1.yzy0704;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class BtnAction implements ActionListener {
 int count1 = 0;
 int count2 = 0;
 // 输入框的第二个变量名 别名
 JTextField nameIn2;
 JPasswordField pwdIn2;
 // 复制方法模板 改分号为大括号
 // 点击按钮 系统就调用这个方法
 public void actionPerformed(ActionEvent e) {
 // 写点击按钮时 要调用的代码
 String ac = e.getActionCommand();
 // 获取输入框 中的文本
 String name = nameIn2.getText();
 String pwd = pwdIn2.getText();
 System.out.println("账号:" + name + " -- 密码:" + pwd);
 if (ac.equals("登录")) {
 System.out.println("点击了按钮 " + ac + count1 + " 次");
 count1++;
 if(name.equals("yzy")&&pwd.equals("yzy123")){
 // 再写一个界面
 JFrame jf = new JFrame();
 jf.setTitle("登录成功");
 jf.setVisible(true);
 }else{
 System.out.println("密码错误");
 }
 } else if (ac.equals("注册")) {
 System.out.println("点击了按钮 " + ac + count2 + " 次");
 count2++;
 }
 }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值