用Java制作用戶(hù)登錄界面超詳細(xì)圖文教程
一、創(chuàng)建一個(gè)新的空白文件夾(確保Java運(yùn)行時(shí)的環(huán)境干凈)
二、數(shù)據(jù)準(zhǔn)備:導(dǎo)入數(shù)據(jù)素材
依次選擇:文件-新建-項(xiàng)目-
三、數(shù)據(jù)導(dǎo)入
1.1選擇你準(zhǔn)備導(dǎo)入的數(shù)據(jù)庫(kù)地址
1.2選擇從現(xiàn)有項(xiàng)目導(dǎo)出
1.3點(diǎn)擊創(chuàng)建
1.4刷新數(shù)據(jù)
然后就看到了這個(gè)并沒(méi)有數(shù)據(jù)的界面,此時(shí)不要慌,因?yàn)槲覀冞€有一個(gè)步驟:打開(kāi)你所建項(xiàng)目的文件夾的路徑,將你想要導(dǎo)入的文件夾復(fù)制粘貼到這個(gè)路徑下面,然后再回到咱們的Java里面,刷新一下,數(shù)據(jù)就出來(lái)了,如下圖
1.5代碼轉(zhuǎn)換
四、設(shè)計(jì)登錄界面
在Java界面,點(diǎn)開(kāi)數(shù)據(jù)包中文件夾下的windows,點(diǎn)開(kāi)它,根據(jù)代碼注解,就可以運(yùn)行和修改登錄界面了,我把代碼發(fā)在下面,需要的同學(xué)可自取
這樣就成功了
如果還想進(jìn)一步學(xué)習(xí)圖書(shū)登錄界面的跳轉(zhuǎn),可以跳轉(zhuǎn)到下一個(gè)界面的那種,就可以看我的下一篇文章,里面或許可以給到大家解決的方法。
這是Login的代碼,有需要的同學(xué)們自提~
package windows; import java.awt.Rectangle; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; import util.GlobalVar; import data.UserDao; import entity.User; public class Login extends PublicJFrame { /** 成員變量 */ private JTextField tf_user;// 定義用戶(hù)名文本框 private JPasswordField pf_pass;// 定義密碼框 private JButton bt_login;// 定義登錄按鈕 private JButton bt_close;// 定義關(guān)閉按鈕 /** 構(gòu)造方法:用于 初始化“登錄界面” */ Login() { // 第1步:獲取框架內(nèi)容面板,并設(shè)置內(nèi)容面板的布局為絕對(duì)布局 this.getContentPane().setLayout(null); // 第2步:在框架的內(nèi)容面板上,創(chuàng)建、 設(shè)置各個(gè)組件 JLabel lb_user = new JLabel("用戶(hù)名:");// 創(chuàng)建用戶(hù)名標(biāo)簽 // 設(shè)置用戶(hù)名標(biāo)簽的放置位置和放置大小 lb_user.setBounds(new Rectangle(100, 50, 70, 25)); add(lb_user);// 將用戶(hù)名標(biāo)簽添加到內(nèi)容面板上 tf_user = new JTextField();// 創(chuàng)建用戶(hù)名文本框 tf_user.setBounds(new Rectangle(170, 50, 110, 25)); add(tf_user); JLabel lb_pass = new JLabel("密碼:");// 創(chuàng)建密碼標(biāo)簽 lb_pass.setBounds(new Rectangle(100, 90, 50, 25)); add(lb_pass); pf_pass = new JPasswordField();// 創(chuàng)建密碼框 pf_pass.setBounds(new Rectangle(170, 90, 110, 25)); add(pf_pass); bt_login = new JButton("登錄");// 創(chuàng)建登錄按鈕 bt_login.setBounds(new Rectangle(100, 160, 80, 25)); // 第3步:為按鈕添加單擊事件監(jiān)聽(tīng)器 // 為“登錄”按鈕添加單擊事件監(jiān)聽(tīng)器 bt_login.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 調(diào)用“登錄”按鈕事件響應(yīng)方法 bt_login_actionPerformed(); } }); add(bt_login); bt_close = new JButton("關(guān)閉");// 創(chuàng)建關(guān)閉按鈕 bt_close.setBounds(new Rectangle(200, 160, 80, 25)); // 為“關(guān)閉”按鈕添加單擊事件監(jiān)聽(tīng)器 bt_close.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { // 釋放“登錄界面”占用的屏幕資源,即關(guān)閉“登錄界面” dispose(); } }); add(bt_close); // 第4步:設(shè)置“登錄界面的標(biāo)題、大小、位置等屬性 setTitle("大帥哥-登錄界面");// 設(shè)置“登錄界面”標(biāo)題 setSize(380, 260);// 設(shè)置“登錄界面”大小 setResizable(false);// 設(shè)置“登錄界面”大小不可改變 setLocationRelativeTo(null);// 設(shè)置“登錄界面”放置在屏幕中央 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 設(shè)置“登錄界面”默認(rèn)的關(guān)閉操作 } /** 成員方法1: "登錄"按鈕的事件響應(yīng)方法 */ void bt_login_actionPerformed() { // 第1步:獲得用戶(hù)名和密碼 String name = tf_user.getText().trim(); String pass = new String(pf_pass.getPassword()).trim(); // 第2步:判斷用戶(hù)名或密碼是否為空? if (name.equals("") || pass.equals("")) { // 為空,則顯示對(duì)話框,給出提示信息,并返回 JOptionPane.showMessageDialog(this, "用戶(hù)信息不允許為空!"); return; } // 第3步:調(diào)用方法,獲取登錄用戶(hù)對(duì)象 User user = UserDao.getUser(name, pass); // 第4步:判斷登錄用戶(hù)對(duì)象是否存在? if (user != null) { // 第5步:存在,則保存當(dāng)前登錄用戶(hù)對(duì)象,創(chuàng)建系統(tǒng)主界面,根據(jù)用戶(hù)權(quán)限設(shè)置主界面,關(guān)閉登錄界面 GlobalVar.login_user = user;// 保存當(dāng)前登錄用戶(hù)對(duì)象 // System.out.println("進(jìn)入系統(tǒng)主界面"); MainFrame main = new MainFrame();// 創(chuàng)建系統(tǒng)主界面 // 根據(jù)用戶(hù)權(quán)限,設(shè)置需要顯示的系統(tǒng)主界面內(nèi)容 main.setPurView((byte) user.getIs_admin());//此方法在系統(tǒng)主界面中定義 this.dispose();// 釋放“登錄界面”占用的屏幕資源 } else { // 第6步:不存在, 顯示提示對(duì)話框,清空用戶(hù)名和密碼 JOptionPane.showMessageDialog(this, "用戶(hù)名或密碼錯(cuò)誤!"); tf_user.setText("");// 清空用戶(hù)名文本框 pf_pass.setText("");// 清空密碼框 return; } } /** 主方法:“圖書(shū)管理系統(tǒng)”入口 */ public static void main(String args[]) { new Login();// 創(chuàng)建登錄界面 } }
總結(jié)
到此這篇關(guān)于用Java制作用戶(hù)登錄界面超詳細(xì)圖文教程的文章就介紹到這了,更多相關(guān)Java用戶(hù)登錄界面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用Spring的StopWatch實(shí)現(xiàn)代碼性能監(jiān)控的方法詳解
在開(kāi)發(fā)過(guò)程中,偶爾還是需要分析代碼的執(zhí)行時(shí)間,Spring 框架提供了一個(gè)方便的工具類(lèi) StopWatch,本文將介紹 StopWatch 的基本用法,并通過(guò)示例演示如何在項(xiàng)目中使用 StopWatch 進(jìn)行代碼性能監(jiān)控2023-12-12java用字節(jié)數(shù)組解決FileInputStream讀取漢字出現(xiàn)亂碼問(wèn)題
這篇文章主要介紹了java用字節(jié)數(shù)組解決FileInputStream讀取漢字出現(xiàn)亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Springboot從配置文件properties讀取字符串亂碼的解決
這篇文章主要介紹了Springboot從配置文件properties讀取字符串亂碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02SpringBoot實(shí)現(xiàn)文件下載的限速功能
在SpringBoot項(xiàng)目中,實(shí)現(xiàn)文件下載的限速功能可以有效控制服務(wù)器帶寬的占用,并防止單個(gè)用戶(hù)消耗過(guò)多的資源,本文將通過(guò)具體的代碼示例和詳細(xì)的流程解釋,介紹如何在SpringBoot項(xiàng)目中實(shí)現(xiàn)文件下載的限速功能,需要的朋友可以參考下2024-07-07Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐
這篇文章主要介紹了Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-08-08Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解
這篇文章主要為大家介紹了Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Java concurrency集合之ArrayBlockingQueue_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
ArrayBlockingQueue是數(shù)組實(shí)現(xiàn)的線程安全的有界的阻塞隊(duì)列。下面通過(guò)本文給大家介紹Java concurrency集合之ArrayBlockingQueue的相關(guān)知識(shí),感興趣的朋友一起看看吧2017-06-06solr 配置中文分析器/定義業(yè)務(wù)域/配置DataImport功能方法(測(cè)試用)
下面小編就為大家?guī)?lái)一篇solr 配置中文分析器/定義業(yè)務(wù)域/配置DataImport功能方法(測(cè)試用)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-09-09