小博老師解析Java核心技術(shù) ——JSwing窗體狀態(tài)監(jiān)聽事件

[引言]

我們在學(xué)習(xí)Java編程的時候怠惶,如果需要開發(fā)客戶端窗體類型的程序,可以使用JDK中的awt和swing庫叹话。本文開始小博老師就繼續(xù)為大家演示Java窗體編程中的各類監(jiān)聽器侮东,今天主要講解窗體狀態(tài)監(jiān)聽器中的事件。

[步驟閱讀一]窗體狀態(tài)監(jiān)聽器事件列表

監(jiān)聽器的主要作用售滤,是為窗體中的控件增加與用戶行為之間的交互功能罚拟,使得整個窗體應(yīng)用程序擁有活躍的元素台诗,加強用戶體驗性。

其中常用監(jiān)聽器主要分為:鼠標(biāo)監(jiān)聽器(MouseListener)赐俗、鼠標(biāo)手勢監(jiān)聽器(MouseMotionListener)拉队、鍵盤監(jiān)聽器(KeyListener)、窗體監(jiān)聽器(WindowListener)阻逮、行為監(jiān)聽器(ActionListener)等頂層接口粱快。

今天小博老師就為大家主要講解窗體狀態(tài)監(jiān)聽器(WindowStateListener),我們首先來了解一下窗體狀態(tài)監(jiān)聽器可以與用戶的哪些行為進(jìn)行交互叔扼,它們均以接口中的方法來封裝:

voidwindowStateChanged(WindowEvente):窗體狀態(tài)改變事件

這個方法擁有一個形參(WindowEvent)事哭,該參數(shù)是窗體事件對象,其中包含了當(dāng)前事件觸發(fā)時瓜富,整個事件的各類數(shù)據(jù)信息鳍咱,比如:觸發(fā)事件的控件、當(dāng)前窗體的狀態(tài)等等信息与柑。

窗體狀態(tài)的改變谤辜,是我們在窗體程序開發(fā)過程中非常重要的一個事件,我們的應(yīng)用界面布局价捧、業(yè)務(wù)邏輯通常會因為窗體狀態(tài)的改變而隨之變化丑念。

[步驟閱讀二]窗體狀態(tài)監(jiān)聽器的使用

接下來,小博老師通過一個簡單的案例结蟋,制作一個簡單的選項功能渠欺,這個選項的界面布局隨著窗體狀態(tài)的改變而變化,當(dāng)窗體最大化時以循環(huán)按鈕的形式布局椎眯,當(dāng)窗體處于普通狀態(tài)時則以下拉選項的布局展現(xiàn)挠将。通過這個案例讓大家一起體驗一下窗體狀態(tài)監(jiān)聽器的使用方式,核心代碼如下:

publicclassMenuFrameextendsJFrame{

publicMenuFrame(){

super("博為峰教育");

setBounds(100, 20, 600, 400);

setLayout(null);

// 窗體啟動時默認(rèn)普通狀態(tài) 以下拉列表形式展現(xiàn)選項

JComboBoxcbx=newJComboBox(options);

cbx.setBounds(20, 20, 200, 25);

add(cbx);

// 為窗體注冊 窗體狀態(tài)改變監(jiān)聽器

addWindowStateListener(newWindowStateListener() {

// 窗體狀態(tài)改變事件

publicvoidwindowStateChanged(WindowEvente) {

getContentPane().removeAll();

// 判斷當(dāng)前窗體是否處于最大化

if(e.getNewState() ==MAXIMIZED_BOTH){

// 窗體最大化時 以展開按鈕形式顯示選項

for(inti= 0 ;i<=options.length- 1;i++ ){

JButtonbt=newJButton(options[i]);

bt.setBounds(200*i+20, 20, 200, 25);

add(bt);

}

}

// 判斷當(dāng)前窗體是否處于普通狀態(tài)

elseif(e.getNewState() ==NORMAL){

// 窗體普通狀態(tài) 以下拉列表形式展現(xiàn)選項

JComboBoxcbx=newJComboBox(options);

cbx.setBounds(20, 20, 200, 25);

add(cbx);

}

}

});

setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

// 選項數(shù)據(jù)源

String[]options=newString[]{

"上海漕河涇中心",

"北京回龍觀中心",

"深圳華強北中心",

"南京新街口中心",

"成都航空路中心"

};

}

實例化窗體對象并且運行后编整,測試各類事件效果如下:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末舔稀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子掌测,更是在濱河造成了極大的恐慌内贮,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件汞斧,死亡現(xiàn)場離奇詭異夜郁,居然都是意外死亡,警方通過查閱死者的電腦和手機粘勒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門竞端,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人庙睡,你說我怎么就攤上這事事富〖祭” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵统台,是天一觀的道長雕擂。 經(jīng)常有香客問我,道長贱勃,這世上最難降的妖魔是什么井赌? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮贵扰,結(jié)果婚禮上仇穗,老公的妹妹穿的比我還像新娘。我一直安慰自己拔鹰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布贵涵。 她就那樣靜靜地躺著列肢,像睡著了一般。 火紅的嫁衣襯著肌膚如雪宾茂。 梳的紋絲不亂的頭發(fā)上瓷马,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音跨晴,去河邊找鬼欧聘。 笑死,一個胖子當(dāng)著我的面吹牛端盆,可吹牛的內(nèi)容都是我干的怀骤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼焕妙,長吁一口氣:“原來是場噩夢啊……” “哼蒋伦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起焚鹊,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤痕届,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后末患,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體研叫,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年璧针,在試婚紗的時候發(fā)現(xiàn)自己被綠了嚷炉。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡探橱,死狀恐怖渤昌,靈堂內(nèi)的尸體忽然破棺而出虽抄,到底是詐尸還是另有隱情,我是刑警寧澤独柑,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布迈窟,位于F島的核電站,受9級特大地震影響忌栅,放射性物質(zhì)發(fā)生泄漏车酣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一索绪、第九天 我趴在偏房一處隱蔽的房頂上張望湖员。 院中可真熱鬧,春花似錦瑞驱、人聲如沸娘摔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽凳寺。三九已至,卻和暖如春彤侍,著一層夾襖步出監(jiān)牢的瞬間肠缨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工盏阶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留晒奕,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓名斟,卻偏偏與公主長得像脑慧,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子砰盐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容