Java学习历程04——监听器的使用

使用步骤:(以登录操作为例

①事件源:当前动作发生的组件(即登录按钮)

②监听器:动作监听器方法      addActionListener(  )这一代码可以给按钮加入动作监听器

③绑定事件处理类

给登录按钮添加动作监听器的方法:

注意:接口不能直接创建对象,需要重新定义类实现接口,重写接口中的抽象方法。

例:(jb1代表登录按钮)

ButtonListener bl = new ButtonListener();
        jb1.addActionListener(bl);

获取账号框和密码框的数据:

 即把账号框对象jtf1、jtf2 传递给ButtonListener类(一个赋值操作)

 bl.userText1=jtf1;
 bl.userText2=jtf2;

书写接口:

实现接口格式:public class +子类 implements +接口,接口,,,{}
注意:实现接口一定要重写接口中的抽象方法

public class ButtonListener implements ActionListener{
//先定义属性    
public JTextField userText1;
    public JTextField userText2;
    public String name="1122";//默认初始账号
    public String password="01122";//默认初始密码
//接着,重写接口中的抽象方法,并确定事件处理方法
public void actionPerformed(ActionEvent e){
        String username=userText1.getText();
        String userpassword=userText2.getText();

一.引用传递(初始化属性)

由于文本框在定义时是JTextField类型,所以需要定义一个同样的变量进行引用传递,操作见上文“获取账号框和密码框的数据”

二.获取数据:定义变量保存该方法的返回数据

①首先定义userText1和userText2这两个变量来保存传递过来的文本框数据

②使用getText(   )可以获取对应文本框中的内容,并将值赋予左边的变量。

接着使用if这一流程控制语句分别写出账号密码正确和错误输出的结果即可。

三.需要补充的是,if的条件框内如果有多个条件,分为两种情况:

①两个或多个条件需要同时满足,则用“与”,表示为&&

②两个或多个条件其中一个成立即可,则用“或”,表示为||

整体代码及效果展示:

代码

 import javax.swing.*;
    import java.awt.*;
public class Login {
    public void showUI(){
        JFrame jf1=new JFrame();
        jf1.setSize(450,550);
        jf1.setTitle("登录界面");
        jf1.setDefaultCloseOperation(3);
        jf1.setLocationRelativeTo(null);
        FlowLayout fl1=new FlowLayout();
        jf1.setLayout(fl1);
        JLabel jl1=new JLabel("账号");
        jf1.add(jl1);
        JTextField jtf1=new JTextField();
        Dimension dm=new Dimension(380,30);
        jtf1.setPreferredSize(dm);
        jf1.add(jtf1);
        JLabel jl2=new JLabel("密码");
        jf1.add(jl2);
        JTextField jtf2=new JTextField();
        jtf2.setPreferredSize(dm);
        jf1.add(jtf2);
        JButton jb1=new JButton("登录");
        jf1.add(jb1);
        JButton jb2=new JButton("注册");
        jf1.add(jb2);
        JButton jb3=new JButton("忘记密码");
        jf1.add(jb3);
        jf1.setVisible(true);
        ButtonListener bl=new ButtonListener();
        jb1.addActionListener(bl);
        bl.userText1=jtf1;
        bl.userText2=jtf2;
    }
    public static void main(String[]args){
        Login lo=new Login();
        lo.showUI();
    }
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class ButtonListener implements ActionListener{
    public JTextField userText1;
    public JTextField userText2;
    public String name="1122";
    public String password="01122";
    public void actionPerformed(ActionEvent e){
        String username=userText1.getText();
        String userpassword=userText2.getText();
    if (username.equals(name)){
        JFrame jf2=new JFrame();
        jf2.setTitle("Java开发者平台");
        jf2.setSize(450,550);
        jf2.setLocationRelativeTo(null);
        jf2.setDefaultCloseOperation(3);
        JLabel jl3=new JLabel("欢迎来到Java开发者平台!");
        FlowLayout fl2=new FlowLayout();
        jf2.setLayout(fl2);
        jf2.add(jl3);
        jf2.setVisible(true);
    }else{
        JFrame jf3=new JFrame();
        jf3.setTitle("Java开发者平台");
        jf3.setSize(450,550);
        jf3.setLocationRelativeTo(null);
        jf3.setDefaultCloseOperation(3);
        JLabel jl4=new JLabel("登录失败,请重新输入账号密码!");
        FlowLayout fl3=new FlowLayout();
        jf3.setLayout(fl3);
        jf3.add(jl4);
        jf3.setVisible(true);
    }
    }
}

效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值