Java實(shí)現(xiàn)簡(jiǎn)單登陸界面
利用Java連接MySQL做登陸界面,供大家參考,具體內(nèi)容如下
1、首先需要建立一個(gè)類,在這里,我命名為newLogin
newLogin類的代碼如下
package p4; import java.awt.Dimension; import java.awt.Font; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import javax.swing.ButtonGroup; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JRadioButton; import javax.swing.JTextField; public class newLogin extends JFrame implements ActionListener{ ?? ?private static final long serialVersionUID = 1L; ?? ?private Connection con = null; ?? ?private Statement statement = null; ?? ?private ResultSet res = null; ?? ?private ButtonGroup buttongroup = new ButtonGroup(); ?? ?private MyPanel jp = new MyPanel(); ?? ?private JLabel ul = new JLabel("用戶名:"); ?? ?private JLabel pl = new JLabel("密 ? ?碼:"); ?? ?private JLabel ts = new JLabel(""); ?? ?private JTextField uname = new JTextField(); ?? ?private JPasswordField pword = new JPasswordField(); ?? ?private JRadioButton[] butArray = { ?? ??? ??? ?new JRadioButton("學(xué)生",true), ?? ??? ??? ?new JRadioButton("教師") ?? ?}; ?? ?private JButton login = new JButton("登陸"); ?? ?private JButton reset = new JButton("重置"); ?? ?public newLogin() { ?? ??? ?addListener(); ?? ??? ?initialFrame(); ?? ?} ?? ?private void initialFrame() { ?? ??? ?Font font = new Font("宋體",Font.BOLD,12); ?? ??? ?setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); ?? ??? ?setTitle("登陸"); ?? ??? ?jp.setLayout(null); ?? ??? ?ul.setBounds(100, 30, 60, 30); ?? ??? ?jp.add(ul); ?? ??? ?uname.setBounds(170, 30, 140, 30); ?? ??? ?jp.add(uname); ?? ??? ?pl.setBounds(100, 80, 60, 30); ?? ??? ?pword.setBounds(170, 80, 140, 30); ?? ??? ?jp.add(pl); ?? ??? ?jp.add(pword); ?? ??? ?ts.setBounds(100, 160, 200, 50); ?? ??? ?jp.add(ts); ?? ??? ?ts.setFont(font); ?? ??? ?login.setBounds(100, 220, 70, 30); ?? ??? ?jp.add(login); ?? ??? ?login.setFont(font); ?? ??? ?reset.setBounds(220, 220, 70, 30); ?? ??? ?jp.add(reset); ?? ??? ?reset.setFont(font); ?? ??? ?add(jp); ?? ??? ?setResizable(false); ?? ??? ?buttongroup.add(butArray[0]); ?? ??? ?buttongroup.add(butArray[1]); ?? ??? ?butArray[0].setBounds(120, 130, 100, 50); ?? ??? ?jp.add(butArray[0]); ?? ??? ?butArray[1].setBounds(220, 130, 100, 50); ?? ??? ?jp.add(butArray[1]); ?? ??? ?butArray[0].setContentAreaFilled(false); ?? ??? ?butArray[1].setContentAreaFilled(false); ?? ??? ?Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); ?? ??? ?int centerX = screenSize.width/2; ?? ??? ?int centerY = screenSize.height/2; ?? ??? ?int w = 427; ?? ??? ?int h = 331; ?? ??? ?setBounds(centerX-w/2, centerY-h/2, w, h); ?? ??? ?setVisible(true); ?? ??? ?uname.requestFocus(true); ?? ??? ?getContentPane().add(jp); ?? ??? ?jp.getRootPane().setDefaultButton(login); ?? ?} ?? ?private void addListener() { ?? ??? ?this.login.addActionListener(this); ?? ??? ?this.uname.addActionListener(this); ?? ??? ?this.pword.addActionListener(this); ?? ?} ?? ?@Override ?? ?public void actionPerformed(ActionEvent e) { ?? ??? ?if(e.getSource() == uname) { ?? ??? ??? ?pword.requestFocus(); ?? ??? ?} ?? ??? ?if(e.getSource() == pword) { ?? ??? ??? ?butArray[0].requestFocus(); ?? ??? ?} ?? ??? ?if(e.getSource() == butArray[0]||e.getSource() == butArray[1]||e.getSource() == login) { //?? ??? ??? ?this.ts.setText("正在為您努力加載,請(qǐng)稍等......"); ?? ??? ??? ? ?? ??? ??? ?int type = this.butArray[0].isSelected()?0:1; ?? ??? ??? ?String username = this.uname.getText().trim(); ?? ??? ??? ?char[] p = this.pword.getPassword(); ?? ??? ??? ?String password = String.valueOf(p).trim(); ?? ??? ??? ?if(username.equals("")) { ?? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "請(qǐng)輸入用戶名!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); ?? ??? ??? ??? ?ts.setText(""); ?? ??? ??? ??? ?return ; ?? ??? ??? ?} ?? ??? ??? ?if(password.equals("")) { ?? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "請(qǐng)輸入密碼!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); ?? ??? ??? ??? ?ts.setText(""); ?? ??? ??? ??? ?return ; ?? ??? ??? ?} ?? ??? ??? ?try { ?? ??? ??? ??? ?con = new connection().getConnection(); ?//調(diào)用自己寫的一個(gè)數(shù)據(jù)庫(kù)連接類 ?? ??? ??? ??? ?statement = con.createStatement(); ?? ??? ??? ??? ?if(type == 0) { ?? ??? ??? ??? ??? ?String sql = "select * from stuuser where "+ ?? ??? ??? ??? ??? ??? ?"username_stu='"+username+"'and password_stu='"+password+"'"; ?? ??? ??? ??? ??? ?res = statement.executeQuery(sql); ?? ??? ??? ??? ??? ?if(res.next()) { ?? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "登錄成功!","提示",JOptionPane.INFORMATION_MESSAGE); ?? ??? ??? ??? ??? ??? ?this.dispose(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?else { ?? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "用戶名或密碼錯(cuò)誤!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); ?? ??? ??? ??? ??? ??? ?ts.setText(""); ?? ??? ??? ??? ??? ??? ?uname.setText(""); ?? ??? ??? ??? ??? ??? ?pword.setText(""); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?//關(guān)閉數(shù)據(jù)庫(kù)連接 ?? ??? ??? ??? ??? ?if(res != null) { ?? ??? ??? ??? ??? ??? ?res.close(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if(statement != null) { ?? ??? ??? ??? ??? ??? ?statement.close(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ?if(con != null) { ?? ??? ??? ??? ??? ??? ?con.close(); ?? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ??? ?else { ?? ??? ??? ??? ??? ?String sql = "select * from teauser where "+ ?? ??? ??? ??? ??? ??? ??? ?"username_tea='"+username+"'and password_tea='"+password+"'"; ?? ??? ??? ??? ??? ??? ?res = statement.executeQuery(sql); ?? ??? ??? ??? ??? ??? ?if(res.next()) { ?? ??? ??? ??? ??? ??? ??? ?String spec_name = res.getString(1); ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "登錄成功!","提示",JOptionPane.INFORMATION_MESSAGE); ?? ??? ??? ??? ??? ??? ??? ?this.dispose(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?else { ?? ??? ??? ??? ??? ??? ??? ?JOptionPane.showMessageDialog(this, "用戶名或密碼錯(cuò)誤!","錯(cuò)誤",JOptionPane.ERROR_MESSAGE); ?? ??? ??? ??? ??? ??? ??? ?ts.setText(""); ?? ??? ??? ??? ??? ??? ??? ?uname.setText(""); ?? ??? ??? ??? ??? ??? ??? ?pword.setText(""); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?//關(guān)閉數(shù)據(jù)庫(kù)連接 ?? ??? ??? ??? ??? ??? ?if(res != null) { ?? ??? ??? ??? ??? ??? ??? ?res.close(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if(statement != null) { ?? ??? ??? ??? ??? ??? ??? ?statement.close(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ??? ??? ?if(con != null) { ?? ??? ??? ??? ??? ??? ??? ?con.close(); ?? ??? ??? ??? ??? ??? ?} ?? ??? ??? ??? ?} ?? ??? ??? ?}catch(SQLException ea) { ?? ??? ??? ??? ?ea.printStackTrace(); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?else if(e.getSource() == reset) { ?? ??? ??? ?uname.setText(""); ?? ??? ??? ?pword.setText(""); ?? ??? ?} ?? ?} }
2、編寫數(shù)據(jù)庫(kù)連接類,在這里命名為connection,然后在類里寫一個(gè)獲取連接的放回,并返回一個(gè)連接。
connection類的代碼如下:
package p4; import java.sql.Connection; import java.sql.DriverManager; //import java.sql.ResultSet; import java.sql.SQLException; //import java.sql.Statement; public class connection { ?? ?private Connection con = null; //?? ?private Statement statement = null; //?? ?private ResultSet res = null; ?? ?String driver = "com.mysql.cj.jdbc.Driver"; ?? ?String url ?= "jdbc:mysql://localhost:3306/Stu_manager?serverTimezone=Asia/Shanghai"; ?? ?String name = "root"; ?? ?String passwd = "123456"; ?? ?public connection() { ?? ??? ? ?? ?} ?? ?public Connection getConnection() { ?? ??? ?try{ ?? ??? ??? ?Class.forName(driver).newInstance(); ?? ??? ??? ?con = DriverManager.getConnection(url,name,passwd); ?? ??? ??? ?}catch(ClassNotFoundException e){ ?? ??? ??? ??? ?System.out.println("對(duì)不起,找不到這個(gè)Driver"); ?? ??? ??? ??? ?e.printStackTrace(); ?? ??? ??? ?}catch(SQLException e){ ?? ??? ??? ??? ? ?? ??? ??? ??? ?e.printStackTrace(); ?? ??? ??? ?}catch(Exception e){ ?? ??? ??? ??? ?e.printStackTrace(); ?? ??? ??? ?} ?? ??? ?return con; ?? ?} }
3、在MySQL數(shù)據(jù)庫(kù)中需建立兩個(gè)用戶表,分別用來(lái)存儲(chǔ)不同用戶的登陸賬號(hào)和密碼,這里學(xué)生用戶表為stuuser,教師用戶表為teauser,建表的SQL語(yǔ)句如下:
stuuser表:
create table stuuser( ?? ?username_stu varchar(20) primary key, ?? ?password_stu char(20) not null, )ENGINE=InnoDB DEFAULT CHARSET=utf8;
teauser表:
create table teauser( ?? ?username_tea varchar(20) primary key, ?? ?password_tea char(20) not null, )ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目微信云托管入門部署實(shí)踐
本文主要介紹了SpringBoot項(xiàng)目微信云托管入門部署實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié)
這篇文章主要介紹了Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié),具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12詳解Java是如何通過接口來(lái)創(chuàng)建代理并進(jìn)行http請(qǐng)求
今天給大家?guī)?lái)的知識(shí)是關(guān)于Java的,文章圍繞Java是如何通過接口來(lái)創(chuàng)建代理并進(jìn)行http請(qǐng)求展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06java 最新Xss攻擊與防護(hù)(全方位360°詳解)
這篇文章主要介紹了java 最新Xss攻擊與防護(hù)(全方位360°詳解),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01在SpringBoot中使用JWT的實(shí)現(xiàn)方法
這篇文章主要介紹了在SpringBoot中使用JWT的實(shí)現(xiàn)方法,詳細(xì)的介紹了什么是JWT和JWT實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2018-12-12IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效
這篇文章主要介紹了IntelliJ IDEA 2020.2正式發(fā)布,諸多亮點(diǎn)總有幾款能助你提效,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-07-07