Java, Only Java!

          統(tǒng)計

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評論排行榜

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

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

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

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

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

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


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

          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)    創(chuàng)建按鈕需要的Swing組件。
          JButton

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

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

          注: 實現(xiàn)可以參看PushMe.java

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

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

          主站蜘蛛池模板: 勐海县| 视频| 佛学| 西安市| 乳源| 峨眉山市| 阜新市| 廉江市| 毕节市| 新和县| 同江市| 盐城市| 嘉鱼县| 青河县| 永登县| 巍山| 陇川县| 盈江县| 麻城市| 正阳县| 辽源市| 托克逊县| 江口县| 柘荣县| 正宁县| 澄城县| 岳西县| 会理县| 兴和县| 阳西县| 桓仁| 吉首市| 秀山| 铁岭市| 资中县| 神木县| 武功县| 额尔古纳市| 古交市| 福建省| 临洮县|