摘要:事件對(duì)象攜帶了動(dòng)作發(fā)生時(shí)的相關(guān)信息,比如通過(guò)事件對(duì)象獲取按鈕的字符串,通過(guò)字符串判斷后執(zhí)行不同的代碼。使用監(jiān)聽(tīng)器的步驟自己創(chuàng)建一個(gè)類使用這個(gè)類創(chuàng)建一個(gè)對(duì)象,用按鈕對(duì)象的添加監(jiān)聽(tīng)器方法添加這個(gè)對(duì)象。
界面開(kāi)發(fā)工具需借助其他工具包,主要有如下兩種:
1.java.awt:組件樣式老舊,推薦使用顏色、尺寸、字體、布局方式這些元素規(guī)則類
2.javax.swing:升級(jí)后的開(kāi)發(fā)包
(1)容器:可以去裝載其他組件,如窗體;
(2)組件:按鈕、輸入框、菜單、滑桿等;
(3)內(nèi)容:文字、圖片等
要使用這些包,需要引用,方法如下:
import javax.swing.*; import java.awt.*;
1.創(chuàng)建一個(gè)類(LoginUI)
2.在這個(gè)類中聲明一個(gè)初始化界面方法
public static void main(String[] args) { LoginUI loginUI=new LoginUI(); loginUI.showUI(); }
3.在方法中:
(1)創(chuàng)建一個(gè)窗體javax.swing.JFramed的對(duì)象;
javax.swing.JFrame jf=new javax.swing.JFrame();
(2)設(shè)置窗體對(duì)象的屬性、標(biāo)題、尺寸、位置、關(guān)閉方法、可視化等
jf.setTitle("登錄入口");//窗體標(biāo)題 jf.setSize(600,500);//窗體尺寸 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//點(diǎn)擊窗體關(guān)閉設(shè)置:退出 java.awt.FlowLayout flow=new java.awt.FlowLayout(); jf.setLayout(flow);//窗體組件的排列方式:流式布局
(3)添加組件對(duì)象如按鈕、輸入框、圖片、文字
javax.swing.JButton btn=new javax.swing.JButton(); javax.swing.JButton btn1=new javax.swing.JButton();//按鈕 javax.swing.JLabel namejla=new javax.swing.JLabel(); javax.swing.JLabel pwdjla=new javax.swing.JLabel();//標(biāo)簽 javax.swing.JTextField namejtf=new javax.swing.JTextField();//文本輸入框 javax.swing.JPasswordField pwdjtf=new javax.swing.JPasswordField();//密碼輸入框 javax.swing.JCheckBox checkBox=new javax.swing.JCheckBox();//復(fù)選框 javax.swing.ImageIcon imgicon=new javax.swing.ImageIcon("C://Users" + "http://Administrator//Desktop//img.png");//圖片 javax.swing.JLabel imgjla=new javax.swing.JLabel();
設(shè)置對(duì)象的屬性
btn.setText("登錄"); btn1.setText("注冊(cè)"); namejla.setText("賬號(hào):"); pwdjla.setText("密碼:"); imgjla.setIcon(imgicon);//把圖片加載到圖片的標(biāo)簽組件上 //組件設(shè)置尺寸 java.awt.Dimension jtfsize=new java.awt.Dimension();//先創(chuàng)建一個(gè)尺寸對(duì)象 jtfsize.setSize(510,50);//設(shè)置尺寸對(duì)象的寬、高 //將尺寸對(duì)象設(shè)置給輸入框 namejtf.setPreferredSize(jtfsize); pwdjtf.setPreferredSize(jtfsize); java.awt.Color color=new java.awt.Color(255,0,0);//設(shè)置顏色,使用java.awt.Color btn.setBackground(color);//將顏色對(duì)象設(shè)給按鈕 checkBox.setText("自動(dòng)登錄");
將組件對(duì)象加載到窗體上,并使窗體可視化
jf.add(imgjla); jf.add(namejla);jf.add(namejtf); jf.add(pwdjla);jf.add(pwdjtf); jf.add(checkBox);jf.add(btn); jf.add(btn1); jf.setVisible(true);
//給按鈕注冊(cè)監(jiān)聽(tīng)器 ButtonListener btnlistener=new ButtonListener(); btn.addActionListener(btnlistener); btn1.addActionListener(btnlistener); //用監(jiān)聽(tīng)器對(duì)象調(diào)用null的輸入框?qū)ο竺媒缑孢@里的輸入框?qū)ο竺o它賦值 btnlistener.namejtf=namejtf; btnlistener.pwdjtf=pwdjtf;
使用監(jiān)聽(tīng)器的目的在于當(dāng)一個(gè)事件源觸發(fā)一個(gè)事件時(shí),會(huì)有一個(gè)或多個(gè)監(jiān)聽(tīng)器進(jìn)行監(jiān)聽(tīng),并會(huì)由監(jiān)聽(tīng)器執(zhí)行與之對(duì)應(yīng)的事件。事件對(duì)象攜帶了動(dòng)作發(fā)生時(shí)的相關(guān)信息,比如通過(guò)事件對(duì)象獲取按鈕的字符串,通過(guò)字符串判斷后執(zhí)行不同的代碼。
使用監(jiān)聽(tīng)器的步驟:
(1)自己創(chuàng)建一個(gè)類;
(2)使用這個(gè)類創(chuàng)建一個(gè)對(duì)象,用按鈕對(duì)象的添加監(jiān)聽(tīng)器方法添加這個(gè)對(duì)象。
//自己創(chuàng)建一個(gè)類來(lái)實(shí)現(xiàn)這個(gè)監(jiān)聽(tīng)器 public class ButtonListener implements ActionListener { //定義一個(gè)輸入框?qū)傩詫?duì)象名 JTextField namejtf=null; JTextField pwdjtf=null; int count=0; //重寫(xiě)監(jiān)聽(tīng)器中方法 改分號(hào)為大括號(hào) 然后在大括號(hào)中加上點(diǎn)擊按鈕之后想要執(zhí)行的代碼 public void actionPerformed(ActionEvent e){ count++; //獲取按鈕上的字符串 String btnstr=e.getActionCommand(); System.out.print("按鈕被點(diǎn)擊了"+count+"次");//打印時(shí)不換行 System.out.println(" 點(diǎn)擊的是:"+btnstr); //判斷字符串 .equal() if(btnstr.equals("登錄")){ String nametext=namejtf.getText(); String pwdtext= pwdjtf.getText(); //驗(yàn)證賬號(hào)密碼是否正確 if(nametext.equals("admin")&&(pwdtext.equals("123456"))) { System.out.print("賬號(hào):"+nametext); System.out.println(" 密碼:"+pwdtext); JFrame jf = new JFrame("登錄成功!!"); jf.setVisible(true); jf.setSize(600, 500); }else{ System.out.println("登錄失敗,請(qǐng)輸入正確的賬號(hào)和密碼"); } } else if(btnstr.equals("注冊(cè)")) { System.out.println("執(zhí)行注冊(cè)操作,跳轉(zhuǎn)至注冊(cè)頁(yè)面"); JFrame jf=new JFrame("注冊(cè)界面"); jf.setSize(600,500); jf.setVisible(true); } }}
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/124703.html
摘要:準(zhǔn)備本腳本適用于安卓游戲區(qū),需要真實(shí)安卓手機(jī)。電腦需安裝好安卓驅(qū)動(dòng),一般豌豆莢或者各種管家可以自動(dòng)幫你裝好。使用命令檢驗(yàn)和手機(jī)狀態(tài)已經(jīng)就緒。 原理 王者榮耀的冒險(xiǎn)模式里有個(gè)挑戰(zhàn)模式,第一次過(guò)關(guān)可以獲得比較多的金幣,后面重新挑戰(zhàn)還是會(huì)獲得少量金幣,這不算是bug,你不嫌煩手動(dòng)蠻力也可以刷金幣。 推薦關(guān)卡:隕落的廢都 - 魔女回憶 此關(guān)卡使用純輸出英雄20秒左右可以打BOSS,50秒左右可...
摘要:開(kāi)發(fā)流程對(duì)于一個(gè)項(xiàng)目,最大的問(wèn)題就是如何拆解為任務(wù),分配到合適的人手里,并在有限的時(shí)間內(nèi)完成它。但是我們把整個(gè)項(xiàng)目進(jìn)行拆解的話,每個(gè)星期進(jìn)行統(tǒng)計(jì)分析,就可以對(duì)癥下藥,提高開(kāi)發(fā)效率。 開(kāi)發(fā)流程 對(duì)于一個(gè)項(xiàng)目,最大的問(wèn)題就是如何拆解為任務(wù),分配到合適的人手里,并在有限的時(shí)間內(nèi)完成它。 就像做建筑工程一樣,其實(shí)做IT也是可以量化的,可能有的人砌磚砌得慢一些,有的人快一些。 但是我們把整個(gè)項(xiàng)目...
摘要:系統(tǒng)分析員向用戶再次確認(rèn)需求。我在公司進(jìn)行了在線教育系統(tǒng)的開(kāi)發(fā),所在的團(tuán)隊(duì)有個(gè)人,包括項(xiàng)目經(jīng)理系統(tǒng)分析人員架構(gòu)師開(kāi)發(fā)人員數(shù)據(jù)庫(kù)設(shè)計(jì)人員前端開(kāi)發(fā)人員測(cè)試人員等,軟件周期從需求分析概要設(shè)計(jì)詳細(xì)設(shè)計(jì)編碼測(cè)試軟件交付用戶驗(yàn)收維護(hù),大概花了個(gè)月。 面試時(shí)可能問(wèn)到的公司情況:包括公司的地址,什么時(shí)候創(chuàng)建的,公司的規(guī)模(小公司、中型公司、大公司),公司的人員(主要講開(kāi)發(fā)團(tuán)隊(duì),包括項(xiàng)目經(jīng)理,項(xiàng)目主管,...
閱讀 550·2021-11-25 09:44
閱讀 2636·2021-11-24 09:39
閱讀 2305·2021-11-22 15:29
閱讀 3519·2021-11-15 11:37
閱讀 3379·2021-09-24 10:36
閱讀 2507·2021-09-04 16:41
閱讀 992·2021-09-03 10:28
閱讀 1831·2019-08-30 15:55