最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Java的界面開發(fā)詳細步驟(用戶注冊登錄)

 更新時間:2024年01月09日 08:52:50   作者:Wait.292  
通過一段時間Java Web的學(xué)習(xí),寫一個簡單的注冊登陸界面來做個總結(jié),這篇文章主要給大家介紹了基于Java的界面開發(fā)(用戶注冊登錄)的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下

首先要清楚一個界面由哪些部分組成:

1、可視化部分:  窗體、標(biāo)簽、菜單、選項卡、按鈕......

2、元素規(guī)則部分:  顏色、尺寸、字體、布局

3、內(nèi)容部分:  文字、圖片

其次是所需代碼庫(java類庫):  

  • java.awt(元素規(guī)則類比較多)
  • javax.swing(可視化組件較多)

所需要使用的類有以下幾種( 使用這些類時需要在class前導(dǎo)入):

  •  javax.siwng.JFrame; //窗體類
  •  javax.swing.JButton; //按鈕類
  •  javax.swing.JLabel; //標(biāo)簽類
  •  javax.swing.JTextField; //文本框類
  •  javax.swing.JPasswordField; //密碼框類
  •  javax.swing.ImageIcon; //圖標(biāo)類
  •  java.awt.Dimension; //尺寸類
  •  java.awt.FlowLayout; //流式布局類

開發(fā)步驟:

定義類,創(chuàng)建對象,調(diào)用方法

1:創(chuàng)建一個類UserUI

2:在類中創(chuàng)建一個方法initUI()

        2.1: 創(chuàng)建一個窗體對象 JFrame jf=new JFrame("用戶入口界面");

        2.2: 設(shè)置窗體相關(guān)屬性:

                2.2.1: 設(shè)置窗體大?。?jf.setSize(400, 400);

                2.2.2: 設(shè)置窗體位置: jf.setLocation(300, 200);

                2.2.3: 設(shè)置窗體關(guān)閉方式: jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

                2.2.4: 設(shè)置窗體不可改變大?。?jf.setResizable(false);

                2.2.5: 設(shè)置窗體內(nèi)的布局方式為流式布局: jf.setLayout(new FlowLayout());

                2.2.6: 設(shè)置窗體可視化: jf.setVisible(true);

        2.3: 創(chuàng)建組件對象:圖標(biāo)、圖標(biāo)標(biāo)簽、賬號標(biāo)簽、賬號輸入框、密碼標(biāo)簽、密碼文本輸入框、登錄按鈕、注冊按鈕

                2.3.1: 創(chuàng)建圖標(biāo)對象: ImageIcon icon=new ImageIcon("src/login/111.png");

                2.3.2: 創(chuàng)建圖標(biāo)標(biāo)簽對象: JLabel iconLabel=new JLabel(icon);

                2.3.3: 創(chuàng)建賬號標(biāo)簽對象: JLabel accountLabel=new JLabel("賬號:");

                2.3.4: 創(chuàng)建賬號輸入框?qū)ο螅?JTextField accountField=new JTextField(33);

                2.3.5: 創(chuàng)建密碼標(biāo)簽對象: JLabel passwordLabel=new JLabel("密碼:");

                2.3.6: 創(chuàng)建密碼輸入框?qū)ο螅?JPasswordField passwordField=new JPasswordField(33);

                2.3.7: 創(chuàng)建登錄按鈕對象: JButton loginButton=new JButton("登錄");

                2.3.8: 創(chuàng)建注冊按鈕對象: JButton registerButton=new JButton("注冊");

        2.4: 組件創(chuàng)建完成后,通過  jf.add (); 語句添加組件

  • jf.add (imgjla);
  •  jf.add (accountjla);
  •  jf.add (accountjtf);
  •  jf.add (passwordjla);
  •  jf.add (passwordjpf);
  •  jf.add (loginjbt);
  •  jf.add (registjbt);

3: 在類中創(chuàng)建一個主函數(shù),創(chuàng)建UserUI對象,調(diào)用initUI()方法

代碼實現(xiàn)如下:

package login;
import java.awt.*;
import javax.swing.*;
public class UserUI {
	public void initUI(){
		System.out.println ("UserUI");
		//界面
		JFrame jf = new JFrame ("用戶界面");
		jf.setSize (400, 400);//窗體大小
		jf.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//窗體關(guān)閉方式
		jf.setLocationRelativeTo (null);// 居中
		jf.setLayout (new FlowLayout ());
		// 創(chuàng)建組件對象
		//在界面中顯示一張圖片:
		ImageIcon imgIcon = new ImageIcon ("src/login/111.png");//圖標(biāo)對象
		JLabel imgjla = new JLabel (imgIcon);//把圖片顯示在一個標(biāo)簽里面
		JLabel accountjla = new JLabel ("賬號: ");
		JTextField accountjtf = new JTextField (33);// 33個字符寬度
		JLabel passwordjla = new JLabel ("密碼: ");
		JPasswordField passwordjpf = new JPasswordField (33);// 33個字符寬度
		JButton loginjbt = new JButton ("登錄");
		JButton registjbt = new JButton ("注冊");
		// 添加組件 按順序添加
		jf.add (imgjla);
		jf.add (accountjla);
		jf.add (accountjtf);
		jf.add (passwordjla);
		jf.add (passwordjpf);
		jf.add (loginjbt);
		jf.add (registjbt);
		jf.setVisible (true);
		// 創(chuàng)建監(jiān)聽器對象 并添加給登錄注冊按鈕
		UIListener uiListener = new UIListener ();
		loginjbt.addActionListener (uiListener);
		registjbt.addActionListener (uiListener);
		// 將界面上的輸入框?qū)ο笞兞棵?中存儲的輸入框?qū)ο蟮刂?復(fù)制一份給監(jiān)聽器對象中輸入框?qū)ο笞兞棵?
		uiListener.accountjtf = accountjtf;
		uiListener.passwordjpf = passwordjpf;
		}
		public static void main(String[] args){
			new UserUI ().initUI ();
		}
}

運行后顯示界面如下所示:

通過調(diào)整一些大小參數(shù),一個簡單的窗體就這樣建立起來了,之后還需要學(xué)習(xí)更多組件和布局的方法來完善這個界面。通過學(xué)習(xí)去搭建這個窗體,我接觸到了java內(nèi)豐富的包,并學(xué)會去使用它們,也看到了java強大的應(yīng)用功能。

只有界面是僅僅不能實現(xiàn)創(chuàng)建和登錄功能的,在界面中我們添加有一個登錄按鈕和一個注冊按鈕,此時這兩個按鈕無論你千點萬擊都是沒反應(yīng)的。要想按鈕響應(yīng)點擊,就要加入動作監(jiān)聽器!使它能夠?qū)崿F(xiàn)當(dāng)用戶輸入正確的賬號和密碼之后順利登陸,并彈出登陸界面。

添加按鈕點擊事件步驟: 

動作監(jiān)聽器: ActionListener 接口

這個監(jiān)聽器中有一個半成品方法(沒有方法內(nèi)容),被監(jiān)聽按鈕被點擊時調(diào)用,需要我們自己實現(xiàn)這個方法

1:創(chuàng)建一個類UIListener實現(xiàn)(imp

ements) ActionListener,類似于繼承

2:在類中復(fù)制ActionListener 中的actionPerformed方法過來,改分號為大括號

3:在方法中添加按鈕點擊之后要執(zhí)行的代碼

4:創(chuàng)建一個UIListener對象添加給所需要被監(jiān)聽的按鈕 addActionListener(UIListener對象)

在UserUI類中,還需要將界面上的輸入框?qū)ο笞兞棵?中存儲的輸入框?qū)ο蟮刂?復(fù)制一份給監(jiān)聽器對象中輸入框?qū)ο笞兞棵?。因為監(jiān)聽器和界面在兩個類中,我要為界面中的按鈕添加動作監(jiān)聽器,就必然需要在監(jiān)聽器里通過界面的對象來調(diào)用方法獲取密碼框的值,那么我們需要把對象從界面這個類傳遞到監(jiān)聽器中,在監(jiān)聽器中獲取數(shù)據(jù)來進去判斷,再得到相應(yīng)的輸出。

// 創(chuàng)建監(jiān)聽器對象 并添加給登錄注冊按鈕
        UIListener uiListener = new UIListener ();
        loginjbt.addActionListener (uiListener);
        registjbt.addActionListener (uiListener);
        // 將界面上的輸入框?qū)ο笞兞棵?中存儲的輸入框?qū)ο蟮刂?復(fù)制一份給監(jiān)聽器對象中輸入框?qū)ο笞兞棵?
        uiListener.accountjtf = accountjtf;
        uiListener.passwordjpf = passwordjpf;
package login;

	import javax.swing.*;
	import java.awt.event.ActionEvent;
	import java.awt.event.ActionListener;

public class UIListener implements ActionListener{
	JTextField accountjtf;
	JPasswordField passwordjpf;
	// 創(chuàng)建一個用戶數(shù)組
	User[] userList = new User[10];
	int index = 0;
	// 重寫點擊按鈕會調(diào)用的方法
	// ActionEvent 動作事件 用來獲取當(dāng)前被點擊的按鈕的信息
	@Override
	public void actionPerformed(ActionEvent e){
		// 獲取 按鈕上的文本 用來判斷是哪個按鈕被點擊了
		String ac = e.getActionCommand ();
		// 獲取輸入框中的賬號密碼 進行驗證 登錄 注冊
		String account = accountjtf.getText ();
		String password = passwordjpf.getText ();
		System.out.println ("賬號: " + account + " 密碼: " + password);
		if(account.equals ("") || password.equals ("")){
			JOptionPane.showMessageDialog (null, "賬號或密碼不能為空");
			return;
		}
		if(ac.equals ("登錄")){
			System.out.println ("登錄按鈕被點擊了");
			// 驗證這個賬號是否已經(jīng)被注冊過
			for(int i = 0; i < index; i++){
				User user = userList[i];
				if(user.account.equals (account)){
					boolean isLogin = user.login (password);
					if(isLogin){
					// 彈窗
					JOptionPane.showMessageDialog (null, "登錄成功");
					// 小窗 信息顯示
					// 創(chuàng)建一個小窗對象
					JFrame jf = new JFrame ("歡迎登錄");
					jf.setSize (400, 400);
					JLabel info = new JLabel ();
					info.setText ("歡迎您: " + user.showInfo ());
					jf.add (info);
					jf.setVisible (true);
				} else{
					// 彈窗
					JOptionPane.showMessageDialog (null, "登錄錯誤");
					}
					return;
				}
			}
			JOptionPane.showMessageDialog (null, "賬號不存在,請先注冊~");
		} else if(ac.equals ("注冊")){
			System.out.println ("注冊按鈕被點擊了");
			// 驗證這個賬號是否已經(jīng)被注冊過
			for(int i = 0; i < index; i++){
			User user = userList[i];
			if(user.account.equals (account)){
				// 彈窗
				JOptionPane.showMessageDialog (null, "賬號已經(jīng)被注冊過了");
				return;
				}
			}
			// 循環(huán)結(jié)束后 都沒有彈窗 就表示這個賬號沒有被注冊過
			User user = new User ();
			user.account = account;
			user.password = password;
			// 將存儲了數(shù)據(jù)的用戶對象 存儲到數(shù)組中
			userList[index] = user;
			index++;
			// 彈窗
			JOptionPane.showMessageDialog (null, "注冊成功,請登錄~");
		}
	}
}

在上述代碼中,通過ActionEvent 動作事件來獲取當(dāng)前被點擊的按鈕的信息,點擊登錄按鈕后,控制臺輸出“登錄按鈕被點擊了”,同樣點擊注冊按鈕后,控制臺輸出“注冊按鈕被點擊了”。添加空值條件設(shè)置一個彈窗,即當(dāng)賬號或密碼輸入框為空時,彈框顯示“賬號或密碼不能為空”。

       if(account.equals ("") || password.equals ("")){
            JOptionPane.showMessageDialog (null, "賬號或密碼不能為空");
            return;
        }

創(chuàng)建一個數(shù)組存放注冊信息,以便在注冊時驗證這個賬號是否已經(jīng)被注冊過。如果注冊過則直接登錄,沒有注冊過,則彈窗顯示“賬號不存在,請先注冊~”。如果賬號注冊過,則顯示“賬號已經(jīng)被注冊過了”。

for(int i = 0; i < index; i++){
                User user = userList[i];
                if(user.account.equals (account)){
                    boolean isLogin = user.login (password);
                }
            }
            JOptionPane.showMessageDialog (null, "賬號不存在,請先注冊~");

        } else if(ac.equals ("注冊")){
              System.out.println ("注冊按鈕被點擊了");
              // 驗證這個賬號是否已經(jīng)被注冊過
              for(int i = 0; i < index; i++){
              User user = userList[i];
              if(user.account.equals (account)){
                // 彈窗
                JOptionPane.showMessageDialog (null, "賬號已經(jīng)被注冊過了");
                return;
                }
            }

利用條件語句,添加登錄返回條件,點擊登錄按鈕后,彈窗顯示“登陸成功”,設(shè)置一個登錄成功以后彈出的界面,界面內(nèi)容顯示用戶信息,否則顯示“登錄錯誤”。當(dāng)按下按鈕時,讓監(jiān)聽器來判斷賬號密碼是不是匹配,如果匹配,則跳出登陸成功界面。

if(user.account.equals (account)){
                    boolean isLogin = user.login (password);
                    if(isLogin){
                    // 彈窗
                    JOptionPane.showMessageDialog (null, "登錄成功");
                    // 小窗 信息顯示
                    // 創(chuàng)建一個小窗對象
                    JFrame jf = new JFrame ("歡迎登錄");
                    jf.setSize (400, 400);
                    JLabel info = new JLabel ();
                    info.setText ("歡迎您: " + user.showInfo ());
                    jf.add (info);
                    jf.setVisible (true);
                } else{
                    // 彈窗
                    JOptionPane.showMessageDialog (null, "登錄錯誤");
                    }
                    return;
                }

創(chuàng)建User類返回登錄后,彈出界面的信息內(nèi)容。用字符連接方式顯示用戶信息,并設(shè)置在線狀態(tài)的改變。

package login;
	import javax.swing.*;
public class User {
	String account;
	String password;
	int score;
	boolean isOnline;
	public String showInfo(){
		String info = "賬號: " + account + " 密碼: " + password + " 積分: " + score + "是否在線: " + isOnline;
		return info;
	}
	public boolean checkPwd(String pwdIn){
		if(pwdIn.equals (password)){
			return true;
		} else{
			return false;
		}
	}
	public boolean login(String pwdIn){
		if(checkPwd (pwdIn)){
			if(isOnline){
				JOptionPane.showMessageDialog (null, "賬號已經(jīng)在線了");
				return false;
			}
			isOnline = true;
			score += 5;
			return true;
		} else{
			return false;
		}
	}

}

總結(jié) 

到此這篇基于Java的界面開發(fā)詳細步驟的文章就介紹到這了,更多相關(guān)Java開發(fā)用戶注冊登錄界面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java使用POI生成Word文檔簡單代碼示例

    Java使用POI生成Word文檔簡單代碼示例

    Java?POI是一個用于操作Microsoft?Office格式文件的Java庫,包括?Word、Excel和PowerPoint等文件,這篇文章主要給大家介紹了關(guān)于Java使用POI生成Word文檔的相關(guān)資料,需要的朋友可以參考下
    2024-08-08
  • Java中數(shù)組array和列表list相互轉(zhuǎn)換

    Java中數(shù)組array和列表list相互轉(zhuǎn)換

    這篇文章主要介紹了Java中數(shù)組array和列表list相互轉(zhuǎn)換,在Java中,可以將數(shù)組(array)和列表(list)相互轉(zhuǎn)換,但需要注意一些細節(jié)和限制,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • Java中的線程池ThreadPoolExecutor解析

    Java中的線程池ThreadPoolExecutor解析

    這篇文章主要介紹了Java中的線程池ThreadPoolExecutor解析,線程池,thread pool,是一種線程使用模式,線程池維護著多個線程,等待著監(jiān)督管理者分配可并發(fā)執(zhí)行的任務(wù),需要的朋友可以參考下
    2023-11-11
  • Spring @ConditionalOnMissingBean 注解的主要作用解析

    Spring @ConditionalOnMissingBean 注解的主要作用解析

    @ConditionalOnMissingBean是Spring Boot中用于條件化配置的注解,確保只有在指定Bean不存在時才創(chuàng)建,它在自動配置中廣泛應(yīng)用,提供默認配置并允許用戶自定義Bean,本文給大家介紹Spring @ConditionalOnMissingBean注解的作用,感興趣的朋友一起看看吧
    2026-01-01
  • JAVA調(diào)用Deepseek的api完成基本對話簡單代碼示例

    JAVA調(diào)用Deepseek的api完成基本對話簡單代碼示例

    這篇文章主要介紹了JAVA調(diào)用Deepseek的api完成基本對話的相關(guān)資料,文中詳細講解了如何獲取DeepSeek?API密鑰、添加HTTP客戶端依賴、創(chuàng)建HTTP請求并使用示例代碼來對接DeepSeek?API,需要的朋友可以參考下
    2025-02-02
  • Java?Lombok中的@Data、@Getter、@Setter使用技巧全面指南

    Java?Lombok中的@Data、@Getter、@Setter使用技巧全面指南

    本文詳解Lombok的@Data、@Getter、@Setter注解,通過編譯時自動生成getter/setter、toString等代碼,簡化Java開發(fā)流程,提升代碼可讀性與維護性,適合數(shù)據(jù)類、配置類等場景使用,感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • 從dubbo zookeeper注冊地址提取出zookeeper地址的方法

    從dubbo zookeeper注冊地址提取出zookeeper地址的方法

    今天小編就為大家分享一篇關(guān)于從dubbo zookeeper注冊地址提取出zookeeper地址的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 在SpringBoot中利用RocketMQ實現(xiàn)批量消息消費功能

    在SpringBoot中利用RocketMQ實現(xiàn)批量消息消費功能

    RocketMQ 是一款分布式消息隊列,支持高吞吐、低延遲的消息傳遞,對于需要一次處理多條消息的場景,RocketMQ 提供了批量消費的機制,這篇文章將展示如何在 Spring Boot 中實現(xiàn)這一功能,感興趣的小伙伴跟著小編一起來看看吧
    2024-11-11
  • SpringBoot+Redis實現(xiàn)查找附近用戶的示例代碼

    SpringBoot+Redis實現(xiàn)查找附近用戶的示例代碼

    SpringDataRedis提供了十分簡單的地理位置定位的功能,本文主要介紹了SpringBoot+Redis實現(xiàn)查找附近用戶的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • Spring Boot maven框架搭建教程圖解

    Spring Boot maven框架搭建教程圖解

    這篇文章主要介紹了Spring Boot maven框架搭建教程圖解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07

最新評論

安岳县| 阿拉善左旗| 宜昌市| 竹溪县| 侯马市| 丹阳市| 孙吴县| 漳平市| 泽州县| 大荔县| 东明县| 定陶县| 朝阳区| 岑溪市| 保康县| 邻水| 澳门| 绥化市| 肥城市| 云梦县| 彭泽县| 东阿县| 龙江县| 喀什市| 萨迦县| 临沧市| 保康县| 昭通市| 汉阴县| 安新县| 石景山区| 集贤县| 乌海市| 卓资县| 雷波县| 海口市| 临沭县| 新闻| 韩城市| 红安县| 麦盖提县|