java图书管理系统(图形界面版)

Javaswing mysql包名:Workclass Mainclass Loginclass Idclass Menuclass TableModelclass ToolBookclass DataBaseclass Userclass Book相对于非可视化版去掉了message类,这里已经9个文件,table本来也要在封装两个文件的,太烦了,比较javaswing没啥用,主要是满足一下自己。马上开始学习Javaweb。需要源程序请自行提取:链接:https://pan.baidu.
摘要由CSDN通过智能技术生成

Javaswing mysql

包名:Work

class Main

package Work;

//函数入口,调用登录界面函数

public class Main {



    public static void main(String[] args) throws Exception {

        //数据库地址
        String str = "jdbc:mysql://localhost:3306/bookUIData?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone = GMT";
        String id = "root";
        String password = "root";

        DataBase dataBase = new DataBase(str, id, password);

        new Login(dataBase);
    }



}

class Login

package Work;

//登录界面类
//bug:注册账号,修改密码后需要重新登陆才能登录,因为用户集合未刷新

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Calendar;

public class Login extends JFrame {


    DataBase dataBase;
    ArrayList<User> userList;
    Timer timer;

    public Login(DataBase dataBase) throws Exception {

        this.dataBase = dataBase;
        this.userList = dataBase.getUserList();

        //先放置控件
        setComponent();
        //放入事件监听函数
        setActionListen();
        //最后布置页面(先布置页面会覆盖控件布置)
        loginFrame();

        timer = new Timer(0, E -> {
            StringBuffer sBuffer = new StringBuffer();
//时分秒
            Calendar cal = Calendar.getInstance();
            int year = cal.get(Calendar.YEAR);
            //这样获取的月份是从0开始的
            int month = cal.get(Calendar.MONTH) + 1;
            int day = cal.get(Calendar.DAY_OF_MONTH);
            int hour = cal.get(Calendar.HOUR_OF_DAY);
            int minute = cal.get(Calendar.MINUTE);
            int second = cal.get(Calendar.SECOND);

            sBuffer.append(String.format("%04d", year)).append("年").append(month).append("月").append(day).append("日 ").append(String.format("%02d", hour)).append(":").append(String.format("%02d", minute)).append(":").append(String.format("%02d", second));
            timeLabel.setText(sBuffer.toString());
        });

        timer.start();
    }

    //页面属性设置
    public void loginFrame(){
        //设置窗口的参数
        setBounds(500,300,600,400);
        //禁用重新调整窗口大小的功能
        setResizable(false);
        //关闭窗口的右上角的叉的同时关闭程序
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置窗口上当前程序的名字
        setTitle("图书管理系统--登录页面");
        //清除默认的布局管理器
        getContentPane().setLayout(null);
        //设置窗口显示
        setVisible(true);
    }


    //定义控件
    JButton loginButton, restartButton, insertButton, changeButton;
    JLabel idLabel, pwdLabel, titleLabel, timeLabel;
    JTextField idText;
    JPasswordField pwdText;

    //控件集合
    ArrayList<JComponent> listComponent = new ArrayList<>();


    //页面控件布置
    public void setComponent(){

        //文本输入框(以及密码输入框)
        idText = new JTextField();
        pwdText = new JPasswordField();
        //设置位置(左上角坐标)与宽高
        idText.setBounds(200, 110, 200, 45);
        pwdText.setBounds(200, 175, 200, 45);
        //存入集合
        listComponent.add(idText);
        listComponent.add(pwdText);
        //放到页面上
        getContentPane().add(idText);
        getContentPane().add(pwdText);

        //标签
        idLabel = new JLabel("账号:");
        pwdLabel = new JLabel("密码:");
        titleLabel = new JLabel("图书管理系统");
        timeLabel = new JLabel();
        //设置坐标与宽高
        idLabel.setBounds(130, 110, 60, 45);
        pwdLabel.setBounds(130, 175, 60, 45);
        titleLabel.setBounds(225, 50, 200, 60);
        timeLabel.setBounds(5, 320, 305, 40);
        //存入集合
        listComponent.add(idLabel);
        listComponent.add(pwdLabel);
        listComponent.add(timeLabel);
        //titleLabel不存入集合单独设置
        titleLabel.setFont(new Font("黑体", Font.BOLD, 24));

        //放到页面上
        getContentPane().add(idLabel);
        getContentPane().add(pwdLabel);
        getContentPane().add(titleLabel);
        getContentPane().add(timeLabel);

        //按钮
        loginButton = new JButton("登录");
        restartButton = new JButton("重置");
        insertButton = new JButton("注册");
        changeButton = new JButton("改密");

        /*
        //事件监听
        loginButton.addActionListener(this);
        restartButton.addActionListener(this);
        insertButton.addActionListener(this);
        changeButton.addActionListener(this);
        */

        //设置大小
        loginButton.setBounds(210, 240, 80, 40);
        restartButton.setBounds(310, 240, 80, 40);
        insertButton.setBounds(405, 112, 80, 40);
        changeButton.setBounds(405, 177, 80, 40);
        //存入集合
        listComponent.add(loginButton);
        listComponent.add(restartButton);
        listComponent.add(insertButton);
        listComponent.add(changeButton);
        //放置于页面
        getContentPane().add(loginButton);
        getContentPane().add(restartButton);
        getContentPane().add(insertButton);
        getContentPane().add(changeButton);


        //整体设置字体
        for (JComponent jComponent : listComponent) {
            jComponent.setFont(new Font("宋体", Font.BOLD, 20));
        }
    }
    /*
    @Override
    public void actionPerformed(ActionEvent e) {

        //给回车键增加按钮监听事件(登录按钮)
        this.getRootPane().setDefaultButton(loginButton);

        if(e.getSource() == loginButton){
            boolean flag = false;

            for (User user : userList) {
                //找到账号
                if (user.getId().equals(idText.getText())) {
                    //密码符合
                    if (user.getPwd().equals(pwdText.getText())) {
                        //登录成功(后续注释掉)
                        //创建新页面
                        try {
                            new Menu(dataBase);
                        } catch (Exception E) {
                            E.printStackTrace();
                        }
                        //跳转页面后(创建新页面),关闭此页面
                        dispose();
                    } else {
                        JOptionPane.showMessageDialog(getContentPane(), "密码有误!");

                    }
                    flag = true;
                }
            }
            //账号不符
            if (!flag) {
                JOptionPane.showMessageDialog(getContentPane(), "账号有误!");

            }
        }else if(e.getSource() == restartButton){
            idText.setText("");
            pwdText.setText("");
        }else if(e.getSource() == insertButton){
            new Id(true, dataBase);
            this.userList = this.dataBase.getUserList();
        }else if(e.getSource() == changeButton){
            new Id(false, dataBase);
            this.userList = this.dataBase.getUserList();
        }
    }*/

    //事件监听
    public void setActionListen(){

        //给回车键增加按钮监听事件(登录按钮)
        this.getRootPane().setDefaultButton(loginButton);

        //登录按钮监听
        loginButton.addActionListener(e -> {

            boolean flag = false;

            for (User user : userList) {
                //找到账号
                if (user.getId().equals(idText.getText())) {
                    //密码符合
                    if (user.getPwd().equals(pwdText.getText())) {
                        //登录成功(后续注释掉)
                        //创建新页面
                        try {
                            new Menu(dataBase);
                        } catch (Exception E) {
                            E.printStackTrace();
                        }
                        //跳转页面后(创建新页面),关闭此页面
                        dispose();
                    } else {
                        JOptionPane.showMessageDialog(getContentPane(), "密码有误!");

                    }
                    flag = true;
                }
            }
            //账号不符
            if (!flag) {
                JOptionPane.showMessageDialog(getContentPane(), "账号有误!");

            }
        });


        //重置按钮监听
        restartButton.addActionListener(e -> {
            idText.setText("");
            pwdText.setText("");
        });

        //注册按钮
        insertButton.addActionListener(e -> {
            DataBase dataBase1 = dataBase;
            new Id(true, dataBase1);
        });

        //修改密码按钮
        changeButton.addActionListener(e -> {
            DataBase dataBase1 = dataBase;
            new Id(false, dataBase1);

        });

    }


}

class Id

package Work;

//账号注册或者修改密码

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

public class Id extends JFrame {
    JButton submitButton, cancelButton;
    JLabel idLabel, pwdLabel, firstPwdLabel, secondPwdLabel;
    JTextField idText, pwdText, firstPwdText, secondPwdText;

    ArrayList<JComponent> componentsList = new ArrayList<>();
    DataBase dataBase;
    ArrayList<User> userList;

    public Id(boolean flag, DataBase dataBase) {

        this.dataBase = dataBase;
        this.userList = dataBase.getUserList();

        if(flag){
            insertUser();
        }else {
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值