界面
QQ登录界面包含界面、图片、文字、输入框、按钮等五项,依次实现即可。
LoginUI.java
package com.zjc0411;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginUI {
public static void main(String[] args) {
LoginUI loginUI=new LoginUI();
loginUI.initUI();
}
public void initUI(){
JFrame jf=new JFrame();//创建界面对象
jf.setSize(530,500);//设置界面尺寸
jf.setTitle("QQ登录");//设置界面标题
jf.setDefaultCloseOperation(3);
//布局方式:流式布局
FlowLayout flt=new FlowLayout();
jf.setLayout(flt);
//添加按钮
JButton jbn1=new JButton("注册");
JButton jbn2=new JButton("登录");
//添加标签
JLabel namejla=new JLabel("账号:");
JLabel pwdjla=new JLabel("密码:");
//添加图片
ImageIcon img=new ImageIcon("C:\\Users\\32277\\Desktop\\1.png");//导入照片
JLabel imgjla=new JLabel(img);
//添加文本框
JTextField namejtx=new JTextField();
JPasswordField pwdjtx=new JPasswordField();
//设置文本框尺寸
Dimension dim=new Dimension(450,35);
namejtx.setPreferredSize(dim);
pwdjtx.setPreferredSize(dim);
//按顺序添加各组件
jf.add(imgjla);
jf.add(namejla);
jf.add(namejtx);
jf.add(pwdjla);
jf.add(pwdjtx);
jf.add(jbn1);
jf.add(jbn2);
//设置全为可见
jf.setVisible(true);
}
}
验证账号和密码
目标
只有输入正确的账号和密码才能进入跳转界面
所以我们的几项任务分别为:
第一,在文本框和按钮上加监听;
第二,验证账号和密码,只有账号和密码都正确才能登陆成功,其他均为失败;
第三,制作跳转界面,分别为登陆成功的界面和登陆失败的界面;
第四,调用跳转界面。
LoginUI类
我们先要在之前所写的LoginUI类中继续完善:添加监听,制作两个跳转界面。
package com.zjc0411;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginUI {
public static void main(String[] args) {
LoginUI loginUI=new LoginUI();
loginUI.initUI();
}
public void initUI(){
JFrame jf=new JFrame();//创建界面对象
jf.setSize(530,500);//设置界面尺寸
jf.setTitle("QQ登录");//设置界面标题
jf.setDefaultCloseOperation(3);
//布局方式:流式布局
FlowLayout flt=new FlowLayout();
jf.setLayout(flt);
//添加按钮
JButton jbn1=new JButton("注册");
JButton jbn2=new JButton("登录");
//添加标签
JLabel namejla=new JLabel("账号:");
JLabel pwdjla=new JLabel("密码:");
//添加图片
ImageIcon img=new ImageIcon("C:\\Users\\32277\\Desktop\\1.png");//导入照片
JLabel imgjla=new JLabel(img);
//添加文本框
JTextField namejtx=new JTextField();
JPasswordField pwdjtx=new JPasswordField();
//设置文本框尺寸
Dimension dim=new Dimension(450,35);
namejtx.setPreferredSize(dim);
pwdjtx.setPreferredSize(dim);
//按顺序添加各组件
jf.add(imgjla);
jf.add(namejla);
jf.add(namejtx);
jf.add(pwdjla);
jf.add(pwdjtx);
jf.add(jbn1);
jf.add(jbn2);
//设置全为可见
jf.setVisible(true);
//新加内容:在“登录”按钮上加监听器
BtnListener bl=new BtnListener();
jbn2.addActionListener(bl);
//新加内容:在文本框上加监听,将文本框传给监听,方便之后读取文本框上输入的内容,并对账号和密码进行验证
//在设置可见之后传文本框
bl.namejtx1=namejtx;
bl.pwdjtx1=pwdjtx;
}
//新加内容:登陆成功的跳转界面
public void initUI1() {
JFrame jf1=new JFrame();
jf1.setSize(530,500);//设置界面尺寸
jf1.setTitle("跳转界面");//设置界面标题
jf1.setDefaultCloseOperation(3);
JLabel namejla1=new JLabel("登陆成功");
jf1.add(namejla1);
jf1.setVisible(true);//一定要设置可见
}
//新加内容:登陆失败的跳转界面
public void initUI2() {
JFrame jf2=new JFrame();
jf2.setSize(530,500);//设置界面尺寸
jf2.setTitle("跳转界面");//设置界面标题
jf2.setDefaultCloseOperation(3);
JLabel namejla2=new JLabel("登陆失败,请重试");
jf2.add(namejla2);
jf2.setVisible(true);
}
}
ActionListener接口
package com.zjc0411;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class BtnListener implements ActionListener{
//将传过来的文本框进行保存
public JTextField namejtx1;
public JPasswordField pwdjtx1;
//对接口中的内容进行拓写,写上自己需要用的代码即可。
public void actionPerformed(ActionEvent e) {
//读取文本框上的内容
String userName=namejtx1.getText();
String userPassword=pwdjtx1.getText();
//验证账号密码是否正确,用if语句进行验证,并根据验证情况进行合理调用
if("123".equals(userName)&&"456".equals(userPassword)) {
LoginUI loginUI1=new LoginUI();
loginUI1.initUI1();
}else {
LoginUI loginUI2=new LoginUI();
loginUI2.initUI2();
}
}
}
最终效果展示
当输入正确的账号和密码时
当输入错误的账号和密码时