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;
 }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章