Java, Only Java!

          統計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

          《Java大學教程》—第10章 圖形和事件驅動程序

          10.2 Swing程序包
          AWT(Abstract Window Toolkit): 抽象窗口工具集。
          依賴于本地操作系統的組件被稱為重量級(Heavy Weight)組件,因為它們都會大量使用系統資源。
          組件名稱有Frame(框架)、Button(按鈕)、Label(標簽)等

          Swing: 基于AWT類構建。
          幾乎所有的組件都用Java編寫,而且所有代碼都是Swing程序包的一部分。用Java語言編寫的組件稱為輕量級(Light Weight)組件。
          組件名稱都以J開頭,如JFrame、JButton、JLabel等。

          Swing程序包和AWT程序包都是Java基礎類(Java Foundation Class, JFC)中的一部分。

          補充說明:首先輕量級與重量級是一個相對的概念,主要是對應用框架使用方便性和所提供服務特性等方面做比較的。
          輕量級組件都是純Java代碼開發的,具有良好的平臺移植性,不依賴于操作系統的支持,在所有的平臺上表現一樣,不直接使用操作系統的資源,
          當然操作系統的資源依然是要占用的,只是系統資源的管理都由組件完成,使用組件的程序員不直接與操作系統的資源打交道。
          重量級組件則每個類都會與操作系統中的一個對等資源相對應。

          10.4 Java中的事件處理機制(event-handling)
          事件處理器(event-handler)


          自測題:
          1。輕量級組件與重量級組件的不同。
          依賴于本地操作系統的組件被稱為重量級組件,因為它們都會大量使用系統資源。
          全部使用Java語言編寫的組件稱為輕量級組件,它們透過AWT使用系統資源,不會直接管理系統資源。

          2。布局管理器的作用

          3。FlowLayout管理器與BorderLayout管理器的不同

          4。
          a)    JFrame組件的布局策略

          b)    JPanel組件的布局策略

          5。一個名為SomeClass的類具有兩個按鈕組件,這兩個按鈕組件被按下時將會采取特定的動作。
          a)    必要的import語句。
          import java.awt.*;
          import java.awt.event.*;

          import javax.swing.*;

          b)    正確的頭部語句。
          public class SomeClass extends JFrame implements ActionListener

          c)    創建按鈕需要的Swing組件。
          JButton

          d)    對按鈕監聽鼠標單擊事件。
          button1.addActionListener(this);

          e)    哪個方法可以決定鼠標單擊按鈕時采取行動。
          public void actionPerformed(ActionEvent e)

          注: 實現可以參看PushMe.java

          編程練習:代碼附件
          1.    PushMe.java    RunPushMe.java
          2.    ChangingFacesGUI.java   
          這個我用的是Swing Designer完成的界面設計+手工修改了部分代碼,
          優點:比原始版本簡潔
          缺點:使用了anoynomous class,本書到這里還沒有講解;還用了enum類型,也是要到書的后面才講,這樣做就是為了更好的對比學習
          3.    MetricConverterGUI.java
          實現了攝氏溫度與華氏溫度的轉換
          最后加了兩個Panel是為了對齊前面的Panel
          4.    ReactorTesterGUI.java
          也是采用Swing Designer完成的界面設計,還增加了MessageBox的使用。
           
          補充1:MessageBox需要一個父組件,而ReactorTesterGUI并沒有在構造函數中實例化,所以不能使用。
          而能使用的是contentPane,這個是在構造函數中實例化了,并且在使用之前已經聲明了。
          父組件是為也確定MessageBox顯示的位置,結果是MessageBox會顯示在父組件的中間位置。
           
          補充2:因為ReactorTesterGUI在構造函數中是無法實例化的,所以生成的組件并沒有直接放在frame的panel中,而是放在contentPane中。
          contentPane是在ReactorTesterGUI的類中聲明了,再在構造函數中用setContentPane(contentPane)來替換JFrame自己的rootPane。

          posted on 2016-08-30 21:38 zYx.Tom 閱讀(190) 評論(0)  編輯  收藏 所屬分類: 1.Java世界

          主站蜘蛛池模板: 台东县| 安岳县| 克山县| 射阳县| 安陆市| 修水县| 青神县| 循化| 和林格尔县| 金溪县| 滦南县| 高州市| 嘉义市| 新源县| 涟水县| 凌云县| 小金县| 广饶县| 闽清县| 南安市| 洪洞县| 乡宁县| 开远市| 武清区| 哈密市| 定陶县| 神池县| 理塘县| 安徽省| 清水河县| 灵川县| 陈巴尔虎旗| 克山县| 鹿邑县| 屯留县| 台江县| 黄浦区| 阳春市| 镇安县| 甘泉县| 五峰|