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)用自己寫(xiě)的一個(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、編寫(xiě)數(shù)據(jù)庫(kù)連接類,在這里命名為connection,然后在類里寫(xiě)一個(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)文章
Windows下將JAVA?jar注冊(cè)成windows服務(wù)的方法
這篇文章主要介紹了Windows下將JAVA?jar注冊(cè)成windows服務(wù)的方法,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Spring中過(guò)濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系解析
在我們?nèi)粘5拈_(kāi)發(fā)中,我們經(jīng)常會(huì)用到Filter和Interceptor,這篇文章主要介紹了Spring中過(guò)濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系?,需要的朋友可以參考下2022-10-10
基于springboot處理date參數(shù)過(guò)程解析
這篇文章主要介紹了基于springboot處理date參數(shù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
Spring WebSocket 404錯(cuò)誤的解決方法
這篇文章主要為大家詳細(xì)介紹了Spring WebSocket 404錯(cuò)誤的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Eclipse項(xiàng)目有紅感嘆號(hào)的解決方法
這篇文章主要為大家詳細(xì)介紹了Eclipse項(xiàng)目有紅感嘆號(hào)的解決方法,給出了Eclipse項(xiàng)目有紅感嘆號(hào)的原因,以及如何解決?,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
java 取交集方法retainAll的實(shí)現(xiàn)
這篇文章主要介紹了java 取交集方法retainAll的實(shí)現(xiàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
HashMap和HashTable底層原理以及常見(jiàn)面試題
今天小編就為大家分享一篇關(guān)于HashMap和HashTable底層原理以及常見(jiàn)面試題,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-01-01

