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

用Java制作用戶(hù)登錄界面超詳細(xì)圖文教程

 更新時(shí)間:2024年06月07日 11:15:36   作者:努力成為頭發(fā)茂密的程序員  
很多人學(xué)習(xí)Java的第一個(gè)任務(wù)是使用Java設(shè)計(jì)客戶(hù)端登錄界面中,希望我的學(xué)習(xí)方法與總結(jié)能幫助到需要的朋友,這篇文章主要給大家介紹了關(guān)于用Java制作用戶(hù)登錄界面的相關(guān)資料,需要的朋友可以參考下

一、創(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)控的方法詳解

    使用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-12
  • java用字節(jié)數(shù)組解決FileInputStream讀取漢字出現(xiàn)亂碼問(wèn)題

    java用字節(jié)數(shù)組解決FileInputStream讀取漢字出現(xiàn)亂碼問(wèn)題

    這篇文章主要介紹了java用字節(jié)數(shù)組解決FileInputStream讀取漢字出現(xiàn)亂碼問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Springboot從配置文件properties讀取字符串亂碼的解決

    Springboot從配置文件properties讀取字符串亂碼的解決

    這篇文章主要介紹了Springboot從配置文件properties讀取字符串亂碼的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 淺談Spring的屬性編輯器的使用

    淺談Spring的屬性編輯器的使用

    這篇文章主要介紹了淺談Spring的屬性編輯器的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-05-05
  • SpringBoot實(shí)現(xiàn)文件下載的限速功能

    SpringBoot實(shí)現(xiàn)文件下載的限速功能

    在SpringBoot項(xiàng)目中,實(shí)現(xiàn)文件下載的限速功能可以有效控制服務(wù)器帶寬的占用,并防止單個(gè)用戶(hù)消耗過(guò)多的資源,本文將通過(guò)具體的代碼示例和詳細(xì)的流程解釋,介紹如何在SpringBoot項(xiàng)目中實(shí)現(xiàn)文件下載的限速功能,需要的朋友可以參考下
    2024-07-07
  • Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐

    Java?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-08
  • Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解

    Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解

    這篇文章主要為大家介紹了Springboot整合Netty自定義協(xié)議實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Java高性能序列化工具Kryo詳情

    Java高性能序列化工具Kryo詳情

    這篇文章主要介紹了Java高性能序列化工具Kryo詳情,Kryo?是一個(gè)快速序列化/反序列化工具,依賴(lài)于字節(jié)碼生成機(jī)制,更多相關(guān)內(nèi)容感興趣的朋友可以參考一下下面文章內(nèi)容
    2022-06-06
  • Java concurrency集合之ArrayBlockingQueue_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java concurrency集合之ArrayBlockingQueue_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    ArrayBlockingQueue是數(shù)組實(shí)現(xiàn)的線程安全的有界的阻塞隊(duì)列。下面通過(guò)本文給大家介紹Java concurrency集合之ArrayBlockingQueue的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-06-06
  • solr 配置中文分析器/定義業(yè)務(wù)域/配置DataImport功能方法(測(cè)試用)

    solr 配置中文分析器/定義業(yè)務(wù)域/配置DataImport功能方法(測(cè)試用)

    下面小編就為大家?guī)?lái)一篇solr 配置中文分析器/定義業(yè)務(wù)域/配置DataImport功能方法(測(cè)試用)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09

最新評(píng)論