Java动作监听器的实现

   在Java界面开发的相关内容中,当我们点击界面内部的按钮时,需要实现一定的功能,而不是作为摆设,这就需要用到动作监听器。而相应的也需要一段代码来使其运行。在界面开发中实现按钮功能的作者提供了一个自动调用的方法,这个方法没有内容,需要自己添加,使得系统底层调用这个方法是会有代码执行。

动作监听器的代码:java.awt.event.ActionListener   //需要调用

一、添加动作监听器

1.首先需要一个类LoginListener来实现接口ActionListener动作

import javax.swing.*;

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


public class LoginListener implements ActionListener {
}

2.重写方法

public void actionPerformed(ActionEvent e) {
        System.out.println ("点击了按钮");
}

3.创建一个监听器类的对象(在窗体可视化之后)

 LoginListener loginll=new LoginListener();

4.使用按钮对象添加创建的监听器对象

loginBtn.addActionListener(loginll);

以上代码完成后,再次点击按钮是就会打印“点击了按钮”这句话。

接下来,我们实现点击登录按钮后获取输入框的文本进行账号密码验证

1.在监听器中创建两个监听器对象变量名

public class LoginListener implements ActionListener {
    JTextField nameJtf1;
    JPasswordField pwdJtf1;
//...此处代码省略
}

2.在界面可视化之后使用监听器对象变量名调用这两个输入框对象变量名初始化。

            jf.setVisible(true);
            LoginListener loginll=new LoginListener();
            loginBtn.addActionListener(loginll);
            //将界面上的输入框传给监听器中的输入框对象变量名
            loginll.nameJtf1=nameJtf;
            loginll.pwdJtf1=pwdJpf;

3.那么在监听器的响应方法中就可使用nameJtf1和pwdJtf1获取输入框中的文本信息

        String username = nameJtf.getText();
        String password = pwdJtf.getText();

        System.out.println ("账号:"+username);
        System.out.println ("密码:"+password);

4.比较判断账号密码

if(username.equals("admin") ){
            if(password.equals("123456")){
                System.out.println("登录成功");

            }else{
                System.out.println("密码错误");
            }
        }else{
            System.out.println("用户名错误");
        }

运行效果

界面开发以及监听器实现的完整代码

package hy0813;

import javax.swing.*;
import java.awt.*;
    public class LoginUI {

        public void showUI() {

            JFrame jf = new JFrame();
            jf.setTitle("登录窗体");
            jf.setSize(450, 450);
            jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            FlowLayout fl = new FlowLayout();
            jf.setLayout(fl);
            ImageIcon img = new ImageIcon("C:\\Users\\24369\\蓝杰机构资料\\Login.png");
            JLabel imgJla = new JLabel(img);// 存放图片的标签
            JLabel nameJla = new JLabel("账号:");// 存放文字的标签
            JLabel pwdJla = new JLabel("密码:");
            JTextField nameJtf = new JTextField(30); // 输入框
            JPasswordField pwdJpf = new JPasswordField(30);// 密码输入框
            JButton loginBtn = new JButton("登录");
            JButton regBtn = new JButton("注册");

            jf.add(imgJla);
            jf.add(nameJla);
            jf.add(nameJtf);
            jf.add(pwdJla);
            jf.add(pwdJpf);
            jf.add(loginBtn);
            jf.add(regBtn);

            jf.setVisible(true);
            LoginListener loginll=new LoginListener();
            loginBtn.addActionListener(loginll);
            loginll.nameJtf=nameJtf;
            loginll.pwdJtf=pwdJpf;
        }
        public static void main(String[] args) {
            LoginUI ui = new LoginUI();
            ui.showUI();
        }
    }

 

package hy0813;


import javax.swing.*;

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


public class LoginListener implements ActionListener {
    JTextField nameJtf;
    JPasswordField pwdJtf;
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println ("点击了按钮");
        String username = nameJtf.getText();
        String password = pwdJtf.getText();

        System.out.println ("账号:"+username);
        System.out.println ("密码:"+password);



        System.out.println("用户名:"+username+"密码:"+password);
        if(username.equals("admin") ){
            if(password.equals("123456")){
                System.out.println("登录成功");

            }else{
                System.out.println("密码错误");
            }
        }else{
            System.out.println("用户名错误");
        }




    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当你将一个类用作事件监听器时,你已经设置好一个特定的事件类型,它会用该类进行监听。接下来的操作是:一个匹配的监听器必须被加入到该组件中 组件被创建之后,可以在组件上调用如下方法来将监听器与它联系起来 addActionListener( ) 可用于 Button,Check, TexyField 等组件 addAdjustmentListener( ) 可用于 ScrollBar 组件 addFocusListener( ) 可用于所有可视化组件 addItemListener( ) 可用于 Button,CheckBox 等组件 addKeyListener( ) 可用于所有可视化组件 addMouseListener( ) 可用于所有可视化组件 addMouseMotionListener( ) 可用于所有可视化组件 addWindowsListener( ) 可用于 Window,Frame等组件 例:下面语句创建一个 Button 对象,并将它与动作事件监听器联系起来 Button button = new Button( “OK” ) ; button . addActionListener ( this ) ; //this 指明当前类就是事件监听器 2 使用方法 (1)动作事件(ActionEvent) 发生在用户完成了使用下列组件之一的动作: Button , CheckBox , ComboBox , TextField , RadioButton 类为了能够处理这些事件必须实现接口 ActionListener 。 每个产生一个动作事件的组件上要调用方法 addActionListener( ) 方法 actionPerformed(ActionEvent evt) 是接口 ActionListener 惟一的 方法采用如下格式: public void actionPerformed(ActionEvent evt) { //…… } 在 ActionEvent 对象上可以使用的方法: getSource( ) 获取产生事件组件的组件名 getActionCommand( ) 获取与组件有关的文本,如命令按钮的标签 键盘事件(KeyEvent) 发生在键盘上的某个键被按下时。 类为了能够处理这些事件必须实现接口 KeyListener 。 每个产生一个键盘事件的组件上要调用方法 addKeyListener( ) 在接口 KeyListener 中有三个方法: public void keyPressed(KeyEvent evt) { //…… } public void keyReleased(KeyEvent evt) { //…… } public void keyTyped(KeyEvent evt) { //…… } 在 KeyEvent 对象上可以使用的方法: getKeyChar( ) 返回与事件相关的键盘字符的 Unicode 码 . . . . . . . . . .

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值