程序设计思路:
首先是显示登录页面,注册页面,以及主页面
然后可以在表里存储数据,即注册用户,可以在图形框中输入数据
在后端检索所有数据,查看是否存在数据
随机生成验证码,并且要求输入的验证码与显示的对应
最后完成登录
源代码:
package yanzhengma;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class Interface extends JFrame {
private static final long serialVersionUID = 1L;
private static final long serialVersionUID = 1L;
private static String record;
public static void main(String[] args) {
new Interface();
}
new Interface();
}
public Interface() {
// 创建 JFrame 实例
JFrame frame = new JFrame("请登录:");
// 创建 JFrame 实例
JFrame frame = new JFrame("请登录:");
// 设置frame大小
frame.setLocation(500, 300);
frame.setSize(400, 200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(500, 300);
frame.setSize(400, 200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建面板
JPanel panel = new JPanel();
JPanel panel = new JPanel();
// 添加面板
frame.add(panel);
frame.add(panel);
// 根据需要设置面板的具体形式
placeComponents(panel);
placeComponents(panel);
// 设置界面可见
frame.setVisible(true);
frame.setVisible(true);
}
public void placeComponents(JPanel panel) {
// 清空面板
panel.setLayout(null);
panel.setLayout(null);
// 创建 用户使用的组件
JLabel userLabel = new JLabel("用户名:");
userLabel.setBounds(10, 20, 80, 25);
panel.add(userLabel);
JLabel userLabel = new JLabel("用户名:");
userLabel.setBounds(10, 20, 80, 25);
panel.add(userLabel);
// 创建文本域用于用户输入
JTextField userText = new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
JTextField userText = new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
// 创建 密码使用的组件
JLabel passwordLabel = new JLabel("密码:");
passwordLabel.setBounds(10, 50, 80, 25);
panel.add(passwordLabel);
JLabel passwordLabel = new JLabel("密码:");
passwordLabel.setBounds(10, 50, 80, 25);
panel.add(passwordLabel);
// 创建密码的文本域
JPasswordField passwordText = new JPasswordField(20);
passwordText.setBounds(100, 50, 165, 25);
panel.add(passwordText);
JPasswordField passwordText = new JPasswordField(20);
passwordText.setBounds(100, 50, 165, 25);
panel.add(passwordText);
// 创建 验证码使用的组件
JLabel verificationLabel = new JLabel("验证码:");
verificationLabel.setBounds(10, 80, 80, 25);
panel.add(verificationLabel);
JLabel verificationLabel = new JLabel("验证码:");
verificationLabel.setBounds(10, 80, 80, 25);
panel.add(verificationLabel);
// 创建验证码的文本域
JTextField verificationText = new JTextField(20);
verificationText.setBounds(100, 80, 80, 25);
panel.add(verificationText);
JTextField verificationText = new JTextField(20);
verificationText.setBounds(100, 80, 80, 25);
panel.add(verificationText);
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
// 创建验证码使用的显示的组件
JLabel verificationShowLabel = new JLabel(result);
verificationShowLabel.setBounds(200, 80, 80, 25);
panel.add(verificationShowLabel);
JLabel verificationShowLabel = new JLabel(result);
verificationShowLabel.setBounds(200, 80, 80, 25);
panel.add(verificationShowLabel);
// 创建登录按钮
JButton loginButton = new JButton("登录");
loginButton.setBounds(10, 120, 80, 25);
panel.add(loginButton);
JButton loginButton = new JButton("登录");
loginButton.setBounds(10, 120, 80, 25);
panel.add(loginButton);
// 对按钮进行监视
ActionListener ourListener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) // 判断是否点击登录按钮
{
if (record.equalsIgnoreCase(verificationText.getText()))// 判断验证码是否正确
{
if (StoreroomManager.datelist.size() == 0)// 判断存储空间是否有数据
{
JOptionPane.showMessageDialog(null, "你还没有注册");
userText.setText("");
passwordText.setText("");
ActionListener ourListener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) // 判断是否点击登录按钮
{
if (record.equalsIgnoreCase(verificationText.getText()))// 判断验证码是否正确
{
if (StoreroomManager.datelist.size() == 0)// 判断存储空间是否有数据
{
JOptionPane.showMessageDialog(null, "你还没有注册");
userText.setText("");
passwordText.setText("");
} else// 对现有的date进行赋值,并且检索是否存在注册过的用户
{
Storeroom date = new Storeroom();
date.setUser(userText.getText());// 获取用户输入的用户名
date.setPassword(passwordText.getText());// 获取用户输入的密码
StoreroomManager.confirmDate(date);
passwordText.setText("");
verificationText.setText("");
}
} else // 验证码不正确
{
passwordText.setText("");
verificationText.setText("");
JOptionPane.showMessageDialog(null, "验证码错误,请重新输入");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
{
Storeroom date = new Storeroom();
date.setUser(userText.getText());// 获取用户输入的用户名
date.setPassword(passwordText.getText());// 获取用户输入的密码
StoreroomManager.confirmDate(date);
passwordText.setText("");
verificationText.setText("");
}
} else // 验证码不正确
{
passwordText.setText("");
verificationText.setText("");
JOptionPane.showMessageDialog(null, "验证码错误,请重新输入");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
}
}
}
};
loginButton.addActionListener(ourListener1);
}
}
};
loginButton.addActionListener(ourListener1);
// 创建注册按钮
JButton registerButton = new JButton("注册");
registerButton.setBounds(100, 120, 80, 25);
panel.add(registerButton);
JButton registerButton = new JButton("注册");
registerButton.setBounds(100, 120, 80, 25);
panel.add(registerButton);
// 对按钮进行监视
ActionListener ourListener2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == registerButton) {
userText.setText("");
passwordText.setText("");
verificationText.setText("");
new RegisterInterface();
}
}
};
registerButton.addActionListener(ourListener2);
ActionListener ourListener2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == registerButton) {
userText.setText("");
passwordText.setText("");
verificationText.setText("");
new RegisterInterface();
}
}
};
registerButton.addActionListener(ourListener2);
// 创建刷新按钮
JButton refreshButton = new JButton("刷新");
refreshButton.setBounds(250, 80, 80, 25);
panel.add(refreshButton);
JButton refreshButton = new JButton("刷新");
refreshButton.setBounds(250, 80, 80, 25);
panel.add(refreshButton);
// 对按钮进行监视
ActionListener ourListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == refreshButton) {
passwordText.setText("");
verificationText.setText("");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
ActionListener ourListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == refreshButton) {
passwordText.setText("");
verificationText.setText("");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
}
}
};
refreshButton.addActionListener(ourListener3);
}
}
}
};
refreshButton.addActionListener(ourListener3);
}
}
//本文件相当于数据库,用于存储数据
package yanzhengma;
import java.util.ArrayList;
import java.util.List;
import java.util.List;
import javax.swing.JOptionPane;
class Storeroom {
private String User;
private String password;
private String User;
private String password;
void setUser(String str) {
User = str;
}
User = str;
}
String getUser() {
return User;
return User;
}
void setPassword(String str) {
password = str;
}
password = str;
}
String getpassword() {
return password;
return password;
}
}
class StoreroomManager // 对数据进行操作的类
{
static List<Storeroom> datelist = new ArrayList<Storeroom>(0);
{
static List<Storeroom> datelist = new ArrayList<Storeroom>(0);
static void confirmDate(Storeroom date)// 登录,遍历数据
{
int flag = 0;
{
int flag = 0;
for (int i = 0; i < datelist.size(); i++) {
if (date.getUser().equalsIgnoreCase(datelist.get(i).getUser())) {
if (date.getpassword().equalsIgnoreCase(datelist.get(i).getpassword())) {
JOptionPane.showMessageDialog(null, "登录成功");
flag++;
}
if (date.getUser().equalsIgnoreCase(datelist.get(i).getUser())) {
if (date.getpassword().equalsIgnoreCase(datelist.get(i).getpassword())) {
JOptionPane.showMessageDialog(null, "登录成功");
flag++;
}
}
}
System.out.println("输入的数据:");
System.out.println("用户名:" + date.getUser());
System.out.println("密码:" + date.getpassword());
for (int i = 0; i < datelist.size(); i++) {
System.out.println("表中的" + (i + 1) + "个数据:");
System.out.println("用户名:" + datelist.get(i).getUser());
System.out.println("密码:" + datelist.get(i).getpassword());
}
if (flag == 0) {
JOptionPane.showMessageDialog(null, "用户名或者密码错误!");
}
}
System.out.println("输入的数据:");
System.out.println("用户名:" + date.getUser());
System.out.println("密码:" + date.getpassword());
for (int i = 0; i < datelist.size(); i++) {
System.out.println("表中的" + (i + 1) + "个数据:");
System.out.println("用户名:" + datelist.get(i).getUser());
System.out.println("密码:" + datelist.get(i).getpassword());
}
if (flag == 0) {
JOptionPane.showMessageDialog(null, "用户名或者密码错误!");
}
}
static boolean searchDate(Storeroom date)// 登录,遍历数据
{
int flag = 0;
for (int i = 0; i < datelist.size(); i++) {
if (date.getUser().equals(datelist.get(i).getUser()))
if (date.getpassword().equals(datelist.get(i).getpassword()))
flag++;
}
if (flag == 0)
return false;
else
return true;
{
int flag = 0;
for (int i = 0; i < datelist.size(); i++) {
if (date.getUser().equals(datelist.get(i).getUser()))
if (date.getpassword().equals(datelist.get(i).getpassword()))
flag++;
}
if (flag == 0)
return false;
else
return true;
}
}
//本文件大致与Interface 类一样
package yanzhengma;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class RegisterInterface {
private static String record;
public RegisterInterface() {
// 创建 JFrame 实例
JFrame frame = new JFrame("欢迎来到注册页面:");
// 创建 JFrame 实例
JFrame frame = new JFrame("欢迎来到注册页面:");
// 设置frame大小
frame.setLocation(500, 300);
frame.setSize(400, 200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setLocation(500, 300);
frame.setSize(400, 200);
frame.setResizable(false);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
// 创建面板
JPanel panel = new JPanel();
JPanel panel = new JPanel();
// 添加面板
frame.add(panel);
frame.add(panel);
// 根据需要设置面板的具体形式
placeComponents(panel, frame);
placeComponents(panel, frame);
// 设置界面可见
frame.setVisible(true);
frame.setVisible(true);
}
public void placeComponents(JPanel panel, JFrame frame) {
// 清空面板
panel.setLayout(null);
// 清空面板
panel.setLayout(null);
// 创建 用户使用的组件
JLabel userLabel = new JLabel("用户名:");
userLabel.setBounds(10, 20, 80, 25);
panel.add(userLabel);
JLabel userLabel = new JLabel("用户名:");
userLabel.setBounds(10, 20, 80, 25);
panel.add(userLabel);
// 创建文本域用于用户输入
JTextField userText = new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
JTextField userText = new JTextField(20);
userText.setBounds(100, 20, 165, 25);
panel.add(userText);
// 创建密码使用的组件
JLabel passwordLabel = new JLabel("密码:");
passwordLabel.setBounds(10, 50, 80, 25);
panel.add(passwordLabel);
JLabel passwordLabel = new JLabel("密码:");
passwordLabel.setBounds(10, 50, 80, 25);
panel.add(passwordLabel);
// 创建密码的文本域
JPasswordField passwordText = new JPasswordField(20);
passwordText.setBounds(100, 50, 165, 25);
panel.add(passwordText);
JPasswordField passwordText = new JPasswordField(20);
passwordText.setBounds(100, 50, 165, 25);
panel.add(passwordText);
// 创建 验证码使用的组件
JLabel verificationLabel = new JLabel("验证码:");
verificationLabel.setBounds(10, 80, 80, 25);
panel.add(verificationLabel);
JLabel verificationLabel = new JLabel("验证码:");
verificationLabel.setBounds(10, 80, 80, 25);
panel.add(verificationLabel);
// 创建验证码的文本域
JTextField verificationText = new JTextField(20);
verificationText.setBounds(100, 80, 80, 25);
panel.add(verificationText);
JTextField verificationText = new JTextField(20);
verificationText.setBounds(100, 80, 80, 25);
panel.add(verificationText);
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
// 创建验证码使用的显示的组件
JLabel verificationShowLabel = new JLabel(result);
verificationShowLabel.setBounds(200, 80, 80, 25);
panel.add(verificationShowLabel);
JLabel verificationShowLabel = new JLabel(result);
verificationShowLabel.setBounds(200, 80, 80, 25);
panel.add(verificationShowLabel);
// 创建确认按钮
JButton confirmButton = new JButton("确定");
confirmButton.setBounds(10, 120, 80, 25);
panel.add(confirmButton);
JButton confirmButton = new JButton("确定");
confirmButton.setBounds(10, 120, 80, 25);
panel.add(confirmButton);
// 对按钮进行监视(确认,即注册按钮)
ActionListener ourListener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
ActionListener ourListener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == confirmButton) {
if (record.equalsIgnoreCase(verificationText.getText())) {
Storeroom date = new Storeroom();
date.setUser(userText.getText());
date.setPassword(passwordText.getText());
if (StoreroomManager.searchDate(date))
frame.dispose();
else {
StoreroomManager.datelist.add(date);
frame.dispose();
}
} else {
JOptionPane.showMessageDialog(null, "验证码错误,请重新输入");
verificationText.setText("");
passwordText.setText("");
if (record.equalsIgnoreCase(verificationText.getText())) {
Storeroom date = new Storeroom();
date.setUser(userText.getText());
date.setPassword(passwordText.getText());
if (StoreroomManager.searchDate(date))
frame.dispose();
else {
StoreroomManager.datelist.add(date);
frame.dispose();
}
} else {
JOptionPane.showMessageDialog(null, "验证码错误,请重新输入");
verificationText.setText("");
passwordText.setText("");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
}
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
}
}
}
}
};
confirmButton.addActionListener(ourListener1);
confirmButton.addActionListener(ourListener1);
// 创建取消按钮
JButton cancelButton = new JButton("取消");
cancelButton.setBounds(100, 120, 80, 25);
panel.add(cancelButton);
JButton cancelButton = new JButton("取消");
cancelButton.setBounds(100, 120, 80, 25);
panel.add(cancelButton);
// 对按钮进行监视
ActionListener ourListener2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cancelButton) {
JOptionPane.showMessageDialog(null, "are you kidding me?!");
frame.dispose();
}
}
};
cancelButton.addActionListener(ourListener2);
ActionListener ourListener2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == cancelButton) {
JOptionPane.showMessageDialog(null, "are you kidding me?!");
frame.dispose();
}
}
};
cancelButton.addActionListener(ourListener2);
// 创建刷新按钮
JButton refreshButton = new JButton("刷新");
refreshButton.setBounds(250, 80, 80, 25);
panel.add(refreshButton);
JButton refreshButton = new JButton("刷新");
refreshButton.setBounds(250, 80, 80, 25);
panel.add(refreshButton);
// 对按钮进行监视
ActionListener ourListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == refreshButton) {
passwordText.setText("");
verificationText.setText("");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
ActionListener ourListener3 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (e.getSource() == refreshButton) {
passwordText.setText("");
verificationText.setText("");
// 创建一个随机字符串
String result = "";
for (int i = 0; i < 6; i++) {
int intVal = (int) (Math.random() * 26 + 97);
result = result + (char) intVal;
}
record = result;
verificationShowLabel.setText(result);
}
}
};
refreshButton.addActionListener(ourListener3);
}
};
refreshButton.addActionListener(ourListener3);
}
}
}