在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("用户名错误");
}
}
}