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í)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03
Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié)
這篇文章主要介紹了Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié),具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
詳解Java是如何通過(guò)接口來(lái)創(chuàng)建代理并進(jìn)行http請(qǐng)求
今天給大家?guī)?lái)的知識(shí)是關(guān)于Java的,文章圍繞Java是如何通過(guò)接口來(lái)創(chuàng)建代理并進(jìn)行http請(qǐng)求展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
java 最新Xss攻擊與防護(hù)(全方位360°詳解)
這篇文章主要介紹了java 最新Xss攻擊與防護(hù)(全方位360°詳解),文中通過(guò)示例代碼介紹的非常詳細(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),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-12-12
IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效
這篇文章主要介紹了IntelliJ IDEA 2020.2正式發(fā)布,諸多亮點(diǎn)總有幾款能助你提效,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-07-07

