Java, Only Java!

          統(tǒng)計(jì)

          留言簿(20)

          積分與排名

          好友空間

          文檔技巧

          閱讀排行榜

          評(píng)論排行榜

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

          10.2 Swing程序包
          AWT(Abstract Window Toolkit): 抽象窗口工具集。
          依賴于本地操作系統(tǒng)的組件被稱為重量級(jí)(Heavy Weight)組件,因?yàn)樗鼈兌紩?huì)大量使用系統(tǒng)資源。
          組件名稱有Frame(框架)、Button(按鈕)、Label(標(biāo)簽)等

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

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

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

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


          自測(cè)題:
          1。輕量級(jí)組件與重量級(jí)組件的不同。
          依賴于本地操作系統(tǒng)的組件被稱為重量級(jí)組件,因?yàn)樗鼈兌紩?huì)大量使用系統(tǒng)資源。
          全部使用Java語(yǔ)言編寫(xiě)的組件稱為輕量級(jí)組件,它們透過(guò)AWT使用系統(tǒng)資源,不會(huì)直接管理系統(tǒng)資源。

          2。布局管理器的作用

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

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

          b)    JPanel組件的布局策略

          5。一個(gè)名為SomeClass的類具有兩個(gè)按鈕組件,這兩個(gè)按鈕組件被按下時(shí)將會(huì)采取特定的動(dòng)作。
          a)    必要的import語(yǔ)句。
          import java.awt.*;
          import java.awt.event.*;

          import javax.swing.*;

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

          c)    創(chuàng)建按鈕需要的Swing組件。
          JButton

          d)    對(duì)按鈕監(jiān)聽(tīng)鼠標(biāo)單擊事件。
          button1.addActionListener(this);

          e)    哪個(gè)方法可以決定鼠標(biāo)單擊按鈕時(shí)采取行動(dòng)。
          public void actionPerformed(ActionEvent e)

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

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

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

          主站蜘蛛池模板: 沽源县| 大城县| 尼勒克县| 巴楚县| 三江| 达州市| 武城县| 休宁县| 双柏县| 莆田市| 新竹县| 建宁县| 滨州市| 禹州市| 清新县| 开江县| 黄陵县| 宿松县| 无锡市| 固始县| 错那县| 贺兰县| 馆陶县| 沁水县| 胶南市| 湘阴县| 石台县| 温州市| 定襄县| SHOW| 勐海县| 武宁县| 关岭| 安仁县| 南汇区| 五指山市| 河东区| 义乌市| 富顺县| 赞皇县| 东辽县|