日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java事件编程_java基础 ---Swing事件编程

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java事件编程_java基础 ---Swing事件编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java基礎 ---Swing事件編程

GUI的設計就剩個菜單組建,這個組件也是想當于容器套容器,在設計方面沒有什么難度,主要是一些事件的響應。還有另一種事件的監聽方式,也就是適配器監聽方法。

1、菜單

要設計一個菜單那么有三大組件是不可或缺的。即JMenuBar、JMenu、JmenuItem。

(1)JMenuBar組件的功能是用來擺入JMenu組件.當我們建立完許多的JMenu組件后,需要通過JMenuBar組件來將JMenu組件加入到窗口中.雖然我們由下表中看出JMenuBar組件只有一種構造方式,但是它對于構造一個菜單來說是個不可缺少的組件.

JMenuBar構造函數:

JMenuBar():建立一個新的JMenuBar;

由于構造一個空的JMenuBar然后設置到窗口上對于窗口來說是沒有意義的,因此JMenuBar需要結合至少一個以上的JMenu組件才會在畫面上顯現出視覺的效果。

(2)JMenu組件是用來存放和整合JMenuItem的組件,這個組件也是在構成一個菜單中不可或缺的組件之一.JMenu可以是單一層次的結構也可以是一個層次式的結構,要使用何種形式的結構取決于界面設計上的需要而定。

(3)JMenuItem繼承AbstractButton類,因此JMenuItem具有許多AbstractButton的特性,也可以說JMenuItem是一種特殊的Button,所以JMenuItem支持許多在Button中好用的功能,例如加入圖標文件或是當我們在菜單中選擇某一項JMenuItem時就如同按下按鈕的操作一樣觸發ActionEvent,通過ActionEvent的機制我們就能針對不同的JMenuItem編寫其對應的程序區段。

2、Adapter事件監聽

適配器與標準事件處理的區別在于如果使用標準事件處理當該監聽器方法不只一個的時候,也需要把其中所有的方法都覆蓋進程序代碼中,即使某些方法不需要使用。如果使用適配器可以只需要將用到的方法寫進代碼即可。下面建立一個監聽事件的類,當window被關閉時則會響應該時間。

class WindowProc extends WindowAdapter

{

public void windowClosing(WindowEvent e)

{

......

}

}

4、JavaBean 模式

今天的課堂作業就是對JavaBean這個種設計模式的應用,有些同學認為使用這種模式反而使程序更加煩瑣,不易理解。其實不然,雖然我們可以使用其他方式來完成今天這個作業,也許更簡單,但是javaBean是種設計理念,我們常說的MVC方式,javabean就是簡單的體現者。

我們這個程序建立了四個類:分別是StudentMain(界面和響應事件的類)StudentScore(數據保存類)Compute(計算總分和平均分的類)Results(保存計算結果的類)。其中StudentScore和Results就是標準的JavaBean類。他們只有get和set方法,用于其他類對他們進行數據的讀取和存儲。

這里要注意一點,當我們使用JavaBean模式的時候,那么一定要傳遞一個該對象的引用以保持他們傳遞數據的一致性。什么意思呢,打個比方,現在我要在TestPass這個類里面調用Bean的一個set方法保存一個數據,并在TestPass1這個類里面獲得該數據并加以計算。那么我們應該這么做:

public class TestPass{

int a = 1;??//初始化a的值為1

public TestPass(){

test();

}

public void test(){

TestPass1 tp1 = new TestPass1();//創建TestPass1類的對象

Bean bean = new Bean();?//創建javabean類的對象

bean.set(a);???//將a屬性的值傳遞給javabean

tp1.change(bean);??//調用TestPass類的方法進行數據操作,傳??????//遞當前bean對象給該方法

System.out.println(bean.get());?//取得javabean里的值并輸出

}

public static void main(String [] args){

new TestPass();

}

}

class TestPass1{

public void change(Bean bean){

bean.set(bean.get()+10);?//獲得傳遞過來對象的屬性,該對象是???????//javabean類的實例,通過計算后將值

//通過set方法傳遞回javabean

}

}

class Bean{?????//標準javaBean模式,通過set和get方法接收??????//和傳遞數據,在兩個類中起到中間件作用

int a1;

public void set(int a){

a1 = a;

}

public int get(){

return a1;

}

}

總結

以上是生活随笔為你收集整理的java事件编程_java基础 ---Swing事件编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。