使用步骤:(以登录操作为例)
①事件源:当前动作发生的组件(即登录按钮)
②监听器:动作监听器方法 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);
}
}
}