日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

javaSwing+MySQl实现图书馆登录页面(完整)

發(fā)布時間:2023/12/15 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javaSwing+MySQl实现图书馆登录页面(完整) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

頁面

import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.sql.SQLException; import java.util.Random;class Login1 {public static void main(String[] args) throws SQLException, ClassNotFoundException {DataBaseConnect connect = new DataBaseConnect(); // connect.getConnection(); // connect.Insert("黃洪飛","123456");connect.Insert("胡彩月", "123456"); // connect.Delete("haungg","23132");Login login = new Login();login.LoginJFrame();} }class Login extends JFrame implements ActionListener {//登錄、注冊、取消JButton btnLogin, btnRegister, btnCancel;JPanel pnlSouth, pnlNorth, pnlCenter1, pnlCenter2;//注冊面板private JLabel jLabel1,jlabel;private JLabel jLabelPassWord;private JTextField jTextFieldUser,jtextField;private JPasswordField jPasswordField;static String user, passWord;private JPanel imagePanel;Code code=new Code(); // ImageIcon imageIcon=new ImageIcon("E:\\java\\Login.jpg"); private ImageIcon background=new ImageIcon("E:\\java\\Login.jpg");; // JFrame jFrame = new JFrame("圖書管理系統(tǒng)");public void LoginJFrame() {JFrame jFrame = new JFrame("圖書管理系統(tǒng)");ImageIcon imageIcon = new ImageIcon("E:\\java\\Login.jpg");JLabel label = new JLabel(imageIcon);label.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight());jFrame.getLayeredPane().add(label, new Integer(Integer.MIN_VALUE));JPanel panel = (JPanel) jFrame.getContentPane();panel.setOpaque(false);jFrame.setLayout(null);jTextFieldUser = new JTextField(15);pnlNorth = new JPanel();jLabel1 = new JLabel("歡迎進入圖書管理系統(tǒng)!");jLabel1.setFont(new Font("宋體", Font.BOLD, 24));pnlNorth.add(jLabel1);pnlNorth.setOpaque(false);pnlNorth.setBounds(100, 50, 300, 59);jFrame.add(pnlNorth);//登錄pnlCenter1 = new JPanel();pnlCenter2 = new JPanel();JLabel jLabelUser = new JLabel(" 用 戶:");jLabelUser.setFont(new Font("宋體", Font.BOLD, 16));jLabelUser.setOpaque(false);jTextFieldUser = new JTextField(15);pnlCenter1.add(jLabelUser);pnlCenter1.add(jTextFieldUser);pnlCenter1.setOpaque(false);pnlCenter1.setBounds(100, 100, 300, 60);jFrame.add(pnlCenter1);//密碼jLabelPassWord = new JLabel("密 碼:");jLabelPassWord.setFont(new Font("宋體", Font.BOLD, 16));jPasswordField = new JPasswordField(15);pnlCenter2.add(jLabelPassWord);pnlCenter2.add(jPasswordField);pnlCenter2.setBounds(100, 150, 300, 60);pnlCenter2.setOpaque(false);//驗證碼jlabel=new JLabel("驗證碼");jlabel.setFont(new Font("宋體",Font.BOLD,16));jtextField=new JTextField(6);JPanel jPanelCenter=new JPanel();jPanelCenter.add(jlabel);jPanelCenter.add(jtextField);jPanelCenter.add(code);jPanelCenter.setBounds(100,200,300,60);jPanelCenter.setOpaque(false);jFrame.add(jPanelCenter);System.out.println(code.generateCode());//登錄jFrame.add(pnlCenter2);pnlSouth = new JPanel();btnLogin = new JButton("登錄");btnLogin.addActionListener(this);btnRegister = new JButton("注冊");btnRegister.addActionListener(this);btnCancel = new JButton("取消");btnCancel.addActionListener(this);pnlSouth.add(btnLogin);pnlSouth.add(btnRegister);pnlSouth.add(btnCancel);pnlSouth.setOpaque(false);pnlSouth.setBounds(130, 250, 300, 50);jFrame.add(pnlSouth);jFrame.setSize(imageIcon.getIconWidth(), imageIcon.getIconHeight());jFrame.setVisible(true);jFrame.setLocation(300, 300);jFrame.setResizable(false);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public String getUser() {return this.user;}public String getPassWord() {return this.passWord;}@Overridepublic void actionPerformed(ActionEvent e) {//登錄DataBaseConnect connect = new DataBaseConnect();if (e.getSource() == btnLogin) {String user = jTextFieldUser.getText();String passWord = jPasswordField.getText();Login.user = user;Login.passWord = passWord;String codes=jtextField.getText();if (user.equals("")) {JOptionPane.showMessageDialog(this, "請輸入賬號");} else if (user.length() != 0) {try {if (connect.Select(user, passWord)) {if(codes.equals(code.getCode())) {JOptionPane.showMessageDialog(this, "恭喜您,登陸成功!");setVisible(false);dispose();new MenuJFrame();}else{JOptionPane.showMessageDialog(this, "輸入驗證碼有誤!");}} else {JOptionPane.showMessageDialog(this, "該賬號不存在!");}} catch (SQLException | ClassNotFoundException ex) {ex.printStackTrace();}}}//注冊else if (e.getSource() == btnRegister) {String user = jTextFieldUser.getText();String password = jPasswordField.getText();try {boolean result = connect.Insert(user, password);if (result) {connect.Insert(user, password);JOptionPane.showMessageDialog(this, "恭喜,注冊成功"); // setVisible(false); // dispose(); // new MenuJFrame();} else {JOptionPane.showMessageDialog(this, "該賬號已經(jīng)存在!");}} catch (SQLException | ClassNotFoundException ex) {ex.printStackTrace();}} else if (e.getSource() == btnCancel) {JOptionPane.showMessageDialog(this, "告辭");System.exit(0);}} } class Code extends JComponent implements MouseListener {public static String codes; //自動生成的驗證碼private int width, height = 40; //設(shè)置驗證碼高度、寬度private int codesLength = 4; //設(shè)置代碼長度private Random random = new Random(); //生成數(shù)字的方法public Code() {width = this.codesLength * 16 + (this.codesLength - 1) * 10; //根據(jù)驗證碼長度設(shè)置寬度setPreferredSize(new Dimension(width, height)); //設(shè)置背景大小setSize(width, height); //設(shè)置驗證碼長度和寬度this.addMouseListener(this);setToolTipText("點擊可更換驗證碼");}//得到生成的驗證碼public int getCodesLength() {return codesLength;}//設(shè)置驗證碼的長度public void setCodesLength(int codeLength) {if (codesLength < 4) {this.codesLength = 4;} else {this.codesLength = codeLength;}}public String getCode() {return codes;}//讓驗證碼產(chǎn)生隨機的顏色public Color getRandColor(int min, int max) {if (min > 255)min = 255;if (max > 255)max = 255;int red = random.nextInt(max - min) + min;int green = random.nextInt(max - min) + min;int blue = random.nextInt(max - min) + min;return new Color(red, green, blue);}// 設(shè)置驗證碼具體的數(shù)字或字母是什么protected String generateCode() {char[] codes = new char[this.codesLength];for (int i = 0, len = codes.length; i < len; i++) {if (random.nextBoolean()) {codes[i] = (char) (random.nextInt(10) + 48);} else {codes[i] = (char) (random.nextInt(26) + 97);}}Code.codes = new String(codes);return Code.codes;}@Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);if (this.codes == null || this.codes.length() != this.codesLength) { //判斷生成的驗證碼是否為空或超出長度this.codes = generateCode();}width = this.codesLength * 16 + (this.codesLength - 1) * 10;super.setSize(width, height); //接口使用,驗證碼字體大小super.setPreferredSize(new Dimension(width, height));//接口使用,驗證碼背景大小Font mFont = new Font("Arial", Font.BOLD | Font.ITALIC, 25); //設(shè)置字體和字體大小g.setFont(mFont); //設(shè)置對象//繪制出驗證碼的背景的矩形輪廓Graphics2D g2d = (Graphics2D) g;g2d.setColor(getRandColor(200, 250));g2d.fillRect(0, 0, width, height);g2d.setColor(getRandColor(180, 200));g2d.drawRect(0, 0, width - 1, height - 1);//繪制出驗證碼背景的線int i = 0, len = 150;for (; i < len; i++) {int x = random.nextInt(width - 1);int y = random.nextInt(height - 1);int x1 = random.nextInt(width - 10) + 10;int y1 = random.nextInt(height - 4) + 4;g2d.setColor(getRandColor(180, 200));g2d.drawLine(x, y, x1, y1);}//繪制出驗證碼的具體字母i = 0;len = this.codesLength;FontMetrics fm = g2d.getFontMetrics();int base = (height - fm.getHeight()) / 2 + fm.getAscent();for (; i < len; i++) {int b = random.nextBoolean() ? 1 : -1;g2d.rotate(random.nextInt(10) * 0.01 * b);g2d.setColor(getRandColor(20, 130));g2d.drawString(codes.charAt(i) + "", 16 * i + 10, base);}}//下一個驗證碼public void nextCode() {generateCode();repaint();;}@Overridepublic void mouseClicked(MouseEvent e) {codes = generateCode();repaint(); // nextCode();}@Overridepublic void mousePressed(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseReleased(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseEntered(MouseEvent e) {// TODO Auto-generated method stub}@Overridepublic void mouseExited(MouseEvent e) {// TODO Auto-generated method stub} }

賬號密碼數(shù)據(jù)庫:

import java.sql.*;class DataBaseConnect {private static final String USER = "root";private static final String PASS = "123456";private Connection connection;private PreparedStatement sql;private ResultSet resultSet;Connection getConnection() throws SQLException, ClassNotFoundException {String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";Class.forName(JDBC_DRIVER);String DB_URl = "jdbc:mysql://root@localhost:3306/library?characterEncoding=utf8";connection = DriverManager.getConnection(DB_URl, USER, PASS);System.out.println("數(shù)據(jù)庫鏈接成功");return connection;}public void CloseConnection(Connection connection) throws SQLException {if (connection != null)connection.close();}public boolean Select(String user, String pass) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("select *from library.db_賬戶 ");int flag = 0;try {resultSet = sql.executeQuery();while (resultSet.next()) {String username = resultSet.getString("username");String passWord = resultSet.getString("password");if (user.equals(username) && pass.equals(passWord))flag = 1;}} catch (Exception e) {e.printStackTrace();}if (flag == 1)return true;elsereturn false;}public boolean Insert(String user, String password) throws SQLException, ClassNotFoundException {connection = this.getConnection(); // sql=connection.prepareStatement("insert into library.db_book(ID,username, password) values(?,?,?)");boolean result = this.Select(user, password);if (!result) {sql = connection.prepareStatement("insert into library.db_賬戶(username, password) values(?,?)"); // sql.setInt(1,0);sql.setString(1, user);sql.setString(2, password);sql.executeUpdate();return true;} else {return false;}}public void Delete(String user, String password) throws SQLException, ClassNotFoundException {connection = this.getConnection();boolean result = this.Select(user, password);if (!result) {sql = connection.prepareStatement("delete from library.db_賬戶 where username=?");sql.setString(1, user); // sql.setString(2,password);sql.executeUpdate();}}//更新數(shù)據(jù)庫用戶信息public void UpData(String user, String passWord) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("update library.db_賬戶 set username=? where password=?");sql.setString(1, user);sql.setString(2, passWord);sql.executeUpdate();}public String AddBook(String bookName, String bookAuthor, String bookTime, int number) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("insert into library.db_book(BookName, BookAuthor, BookTime, BookNumber) values(?,?,?,?)");sql.setString(1, bookName);sql.setString(2, bookAuthor);sql.setString(3, bookTime);sql.setInt(4, number);sql.executeUpdate();return "添加書籍成功";}public boolean SelectBook(String bookName) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("select *from library.db_book ");resultSet = sql.executeQuery();int flag = 0;while (resultSet.next()) {String book = resultSet.getString("BookName");if (bookName.equals(book))flag = 1;}if (flag == 1)return true;elsereturn false;}public void DeleteBook(String bookName) throws SQLException, ClassNotFoundException {connection = this.getConnection();sql = connection.prepareStatement("delete from library.db_book where BookName=?");sql.setString(1, bookName); // sql.setString(2,password);sql.executeUpdate();} }

總結(jié)

以上是生活随笔為你收集整理的javaSwing+MySQl实现图书馆登录页面(完整)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。