java實(shí)現(xiàn)簡(jiǎn)單登錄界面的實(shí)戰(zhàn)過(guò)程
一、概要
我們可以用java實(shí)現(xiàn)簡(jiǎn)單的登錄界面。

如上效果,直觀但也需要一步一步來(lái)完成,從界面彈窗的設(shè)置,圖片的插入,文本框的設(shè)置,到登錄的按鈕,全由代碼來(lái)實(shí)現(xiàn)。
二、分類部分
LoginUI類:實(shí)現(xiàn)界面的設(shè)置,構(gòu)建方法,封裝好所有的界面開(kāi)發(fā)代碼
①initUI方法 :1、創(chuàng)建窗體對(duì)象;
2、設(shè)置窗體的相關(guān)屬性(標(biāo)題、尺寸、大小、關(guān)閉、可視化);
3、創(chuàng)建組件對(duì)象,按鈕,輸入框;
4、界面窗口添加按鈕;
5、按鈕添加監(jiān)聽(tīng)器。
②main方法 :用自己的類創(chuàng)建對(duì)象,調(diào)用自己的方法
ButtonAction類:監(jiān)聽(tīng)器,獲取鼠標(biāo)點(diǎn)擊按鈕的信息,(繼承ActionListener)
我們添加按鈕后,需要一個(gè)點(diǎn)擊按鈕后有反應(yīng)的功能,故設(shè)置此類,能在點(diǎn)擊按鈕后做出反應(yīng)。
比如此處我們?cè)O(shè)置初始賬戶admin,密碼123456,可以輸入后,點(diǎn)擊登錄,跳出登錄成功的界面。
①成員方法actionPerformed,傳入?yún)?shù)(actionPerformed)
②成員變量
public int count = 0;
//先聲明一個(gè)輸入框的引用地址存儲(chǔ)變量;
public JTextField nameJtf;
public JTextField pwdJtf;
public JFrame jf1;繼承ActionListener后,必須重寫(xiě)里面的方法actionPerformed(用ctrl+鼠標(biāo)左鍵 看到源文件代碼)
此即監(jiān)聽(tīng)器。
三、代碼實(shí)現(xiàn)
LoginUI類:實(shí)現(xiàn)界面的設(shè)置,構(gòu)建方法,封裝好所有的界面開(kāi)發(fā)代碼
①initUI方法 :1、創(chuàng)建窗體對(duì)象;jf
2、設(shè)置窗體的相關(guān)屬性(標(biāo)題、尺寸、大小不變、位置、居中顯示、關(guān)閉、可視化);setTitle,setSize,setResizable,setLocation,setLocationRelativeTo,setDefaultCloseOperation,setVisible.
3、創(chuàng)建組件對(duì)象,按鈕,輸入框,圖片標(biāo)簽;JButton,JLabal,JTextField,ImageIcon,
4、界面窗口添加按鈕:jf.add()
5、按鈕添加監(jiān)聽(tīng)器。ButtonAction btnactino = new ButtonAction();
btnaction.addActionListener(btnaction).
②main方法 :用自己的類創(chuàng)建對(duì)象,調(diào)用自己的方法;
//LoginUI類:實(shí)現(xiàn)界面的設(shè)置,構(gòu)建方法,封裝好所有的界面開(kāi)發(fā)代碼
//①initUI方法 :1、創(chuàng)建窗體對(duì)象;
//2、設(shè)置窗體的相關(guān)屬性(標(biāo)題、尺寸、大小、關(guān)閉、可視化);
//3、創(chuàng)建組件對(duì)象,按鈕,輸入框;
//4、界面窗口添加按鈕;
//5、按鈕添加監(jiān)聽(tīng)器。
//②main方法 :用自己的類創(chuàng)建對(duì)象,調(diào)用自己的方法
public class LoginUI {
//一、界面方法
public void initUI(){
//1:創(chuàng)建一個(gè)窗體的對(duì)象;
JFrame jf = new JFrame();
//2:設(shè)置窗體的相關(guān)屬性:標(biāo)題,尺寸,關(guān)閉選項(xiàng)操作 可視化
jf.setTitle("登錄界面");
jf.setSize(500,800); //像素單位
jf.setResizable(false); //尺寸固定
//jf.setLocation(1000,400); //位置固定 可更改
jf.setLocationRelativeTo(null); //居中顯示
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //退出方式
jf.setVisible(true);
FlowLayout f1 = new FlowLayout(); //流式布局
jf.setLayout(f1);
//3:創(chuàng)建組件對(duì)象,按鈕,輸入框
//按鈕
JButton btn = new JButton ("登錄");
//標(biāo)簽
JLabel namejla = new JLabel("賬號(hào): ");
JLabel pwdjla = new JLabel ("密碼: ");
//輸入框
JTextField nameJtf = new JTextField();
JTextField pwdJtf = new JTextField();
//圖片標(biāo)簽
ImageIcon imgicon = new ImageIcon("C:\\Users\\Desktop\\picture\\picture.jpeg");//圖片插入,更改圖片路徑,需要注意后綴
JLabel imgjla = new JLabel(imgicon);
//組件設(shè)置尺寸
Dimension dimsize = new Dimension (420,50);
nameJtf.setPreferredSize(dimsize);
pwdJtf.setPreferredSize(dimsize);
//4:界面窗體添加按鈕
jf.add(imgjla);
jf.add(namejla);
jf.add(nameJtf);
jf.add(pwdjla);
jf.add(pwdJtf);
jf.add(btn);
//可視化在所有組件加載之后
jf.setVisible(true); //可視化 交給系統(tǒng)渲染到屏幕上
//按鈕添加監(jiān)聽(tīng)器
ButtonAction btnaction = new ButtonAction();
btn.addActionListener(btnaction);
btnactino.count=100;
btnactino.nameJtf= nameJtf;
btnactino.pwdJtf= pwdJtf;
}
//二、主函數(shù)部分
public static void main(String[] args) {
//創(chuàng)建自己寫(xiě)的類的對(duì)象;
LoginUI loginui = new LoginUI();
//調(diào)用方法
loginui.initUI();
}
}ButtonAction類:監(jiān)聽(tīng)器,獲取鼠標(biāo)點(diǎn)擊按鈕的信息,(繼承ActionListener)
public class ButtonAction implements ActionListener{ //監(jiān)聽(tīng)器
public int count = 0;
//先聲明一個(gè)輸入框的引用地址存儲(chǔ)變量;
public JTextField nameJtf;
public JTextField pwdJtf;
public JFrame jf1;
//監(jiān)聽(tīng)器
public void actionPerformed(ActionEvent e) {
//獲取輸入框中的字符串
String nameText = nameJtf.getText();
String pwdText = pwdJtf.getText();
//比較賬號(hào) 密碼 設(shè)置初始賬戶admin,密碼123456
if(nameText.equals("admin") || nameText.equals("user1")) {
System.out.println("比較成功!!");
if(pwdText.equals("123456") || pwdText.equals("a123456")) {
System.out.println("比較成功!!");
//創(chuàng)建一個(gè)新窗體彈出
JFrame jf = new JFrame();
jf.setTitle("登錄響應(yīng)??!");
jf.setSize(500,200);
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
java.awt.FlowLayout f1 = new java.awt.FlowLayout();
jf.setLayout(f1);
JLabel jla =new JLabel ("登錄成功??!");
jf.add(jla);
jf.setVisible(true);
jf.setLocationRelativeTo(null);//居中顯示
}
}
}
}
總結(jié)
到此這篇關(guān)于java實(shí)現(xiàn)簡(jiǎn)單登錄界面的文章就介紹到這了,更多相關(guān)java簡(jiǎn)單登錄界面內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WebSocket實(shí)現(xiàn)系統(tǒng)后臺(tái)消息實(shí)時(shí)通知功能
在現(xiàn)代Web應(yīng)用中,提供實(shí)時(shí)通知對(duì)于改善用戶體驗(yàn)至關(guān)重要,WebSocket技術(shù)允許建立雙向通信通道,從系統(tǒng)后臺(tái)將消息實(shí)時(shí)傳送給系統(tǒng)用戶,下面我們就來(lái)深入探討一下如何使用WebSocket來(lái)實(shí)現(xiàn)這一功能吧2023-10-10
Java實(shí)現(xiàn)文件上傳的兩種方法(uploadify和Spring)
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)文件上傳的兩種方法,uploadify和Spring實(shí)現(xiàn)文件上傳,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
SpringBoot中基于AOP和Semaphore實(shí)現(xiàn)API限流
調(diào)用速率限制是 Web API 中的常見(jiàn)要求,旨在防止濫用并確保公平使用資源,借助Spring Boot 中的 AOP,我們可以通過(guò)攔截方法調(diào)用并限制在特定時(shí)間范圍內(nèi)允許的請(qǐng)求數(shù)量來(lái)實(shí)現(xiàn)速率限制,需要的朋友可以參考下2024-10-10
Spring?populateBean屬性賦值和自動(dòng)注入
這篇文章主要為大家介紹了Spring?populateBean屬性賦值和自動(dòng)注入示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
elasticsearch bucket 之rare terms聚合使用詳解
這篇文章主要為大家介紹了elasticsearch bucket 之rare terms聚合使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
在mybatis 中使用if else 進(jìn)行判斷的操作
這篇文章主要介紹了在mybatis 中使用if else 進(jìn)行判斷的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
Java修改maven的默認(rèn)jdk版本為1.7的方法
這篇文章主要介紹了Java修改maven的默認(rèn)jdk版本為1.7的方法,需要的朋友可以參考下2018-02-02
Java找出兩個(gè)大數(shù)據(jù)量List集合中的不同元素的方法總結(jié)
本文將帶大家了解如何快速的找出兩個(gè)相似度非常高的List集合里的不同元素。主要通過(guò)Java API、List集合雙層遍歷比較不同、借助Map集合查找三種方式,需要的可以參考一下2022-10-10

