欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)簡(jiǎn)單登陸界面

 更新時(shí)間:2022年04月25日 15:21:07   作者:我愛園園  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單登陸界面,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

利用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í)踐

    本文主要介紹了SpringBoot項(xiàng)目微信云托管入門部署實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Java上傳下載文件并實(shí)現(xiàn)加密解密

    Java上傳下載文件并實(shí)現(xiàn)加密解密

    這篇文章主要介紹了Java上傳下載文件并實(shí)現(xiàn)加密解密,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • Java利用Optional解決空指針異常

    Java利用Optional解決空指針異常

    這篇文章主要介紹了Java利用Optional解決空指針異常,Optional?類是一個(gè)包含有可選值的包裝類,這意味著?Optional?類既可以含有對(duì)象也可以為空
    2022-09-09
  • Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié)

    Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié)

    這篇文章主要介紹了Java文件讀寫IO/NIO及性能比較詳細(xì)代碼及總結(jié),具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • 詳解Java是如何通過接口來(lái)創(chuàng)建代理并進(jìn)行http請(qǐng)求

    詳解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-06
  • java 最新Xss攻擊與防護(hù)(全方位360°詳解)

    java 最新Xss攻擊與防護(hù)(全方位360°詳解)

    這篇文章主要介紹了java 最新Xss攻擊與防護(hù)(全方位360°詳解),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • Java接入支付寶授權(quán)第三方登錄的完整步驟

    Java接入支付寶授權(quán)第三方登錄的完整步驟

    不管是支付寶支付,還是微信支付,還是銀聯(lián)支付等,大部分的支付流程都是相似的,這篇文章主要給大家介紹了關(guān)于Java接入支付寶授權(quán)第三方登錄的相關(guān)資料,使用支付寶的沙盒環(huán)境示例,需要的朋友可以參考下
    2021-07-07
  • 關(guān)于webLucene 安裝方法

    關(guān)于webLucene 安裝方法

    webLucene是一個(gè)基于開源項(xiàng)目lucene實(shí)現(xiàn)站內(nèi)搜索的工具,關(guān)于它的安裝,百度得到的大多是一樣的,按照步驟也能正確安裝并運(yùn)行,需要注意的問題是
    2009-06-06
  • 在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    在SpringBoot中使用JWT的實(shí)現(xiàn)方法

    這篇文章主要介紹了在SpringBoot中使用JWT的實(shí)現(xiàn)方法,詳細(xì)的介紹了什么是JWT和JWT實(shí)戰(zhàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2018-12-12
  • IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效

    IntelliJ IDEA 2020.2正式發(fā)布,兩點(diǎn)多多總能助你提效

    這篇文章主要介紹了IntelliJ IDEA 2020.2正式發(fā)布,諸多亮點(diǎn)總有幾款能助你提效,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-07-07

最新評(píng)論