AWT與Swing的學習筆記

來源:互聯網
上載者:User

AWT部分

AWT (Abstract Window Toolkit),可用於Applet和application
功能:
使用者介面組
事件處理模型
圖形映像工具(形狀,顏色,字型)
布局管理器,可以進行靈活的視窗布局而與特定視窗的尺寸和螢幕解析度無關
資料傳送(剪貼和複製)

類和介面:
AWTEvent
Font
Componet--Container--(Panel--Applet;Window--Frame)
Graphics
MenuComponent
布局管理類

FlowLayout 一行接一行,是Panel,Applet的預設布局(Panel無法單獨顯示,必須加入某個容器)
BoradLayout 東南西北中,是Window,Frame,Dialog的預設布局,Frame是最上層視窗
GridLayout 格,行列,平均佔據容器的空間,一個構件只能在一格
CardLayout 牌,最上邊能看見
GridBagLayout 實用,可以占任意個行列
Frame.pack();緊湊排列,

import java.awt.event.*
XXX.addActionListener(new ButtonHandler());
class ButtonHandler implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
.......do something
}
}
同一個監聽器可以監聽兩個按鈕:
通過e.getActionCommand()傳回值判斷按下了哪個按鈕

事件類別目錄         描述資訊           介面名          方法

ActionEvent  啟用組件           ActionListener  actionPerformed(ActionEvent)
ItemEvent        選擇某些項目(比如,複選框
。。。。還有很多個

事件適配器,為一些Listener介面(可能有多個方法)提供了適配器Adapter類。
通過繼承事件所對應的Adapter類,只需要重寫需要的類;

AWT組件庫:Button,Checkbox,CheckboxGroup,Choice(下拉式),Canvas畫布,建立自訂群組件,TextField(單行文本輸入),TextArea,List,Frame,Dialog,Filedialog,Menu(只能在MenuBar容器中),MenuBar(只能添加到Frame中) 

 

Swing部分

AWT重量級,與具體平台相關,
Swing輕量級,在不同的平台上表現一致,並有能力提供本地視窗系統不支援的其他特性,純java,沒有本地代碼採用MVC模式
import javax.swing.*

類階層(兩個類型的組件):
頂層容器(JFrame,JApplet,JDialog,JWindow);註:一般以J開頭,J*****
輕量級組件

Swing組件都是AWT的Container類的直接子類或者間接;

組件除了可以使用文字,還可以使用表徵圖修飾自己;

swing開發流程:
1,引入Swing包
2,選擇“外觀和感覺”
3,設定頂層容器
4,設定按鈕和標籤
5,向容器中添加組件
6,在組件周圍添加邊界
7,事件處理

組件從功能上分:
頂層容器(JFrame,JApplet,JDialog,JWindow)
中間容器Panel,JScroll,JSplitPane,JToolBar
特殊容器JInternalFrame,JLayeredPane,JRootPane
基本控制項,實現人機互動的組件:JButton,JComboBox,JList,JMenu,JSlider,JtextField;
不可編輯資訊的顯示:JLabel,JProgressBar,ToolTip;
可編輯資訊的顯示:JColorChooser,JFileChoose,JFileChooser,Jtable,JtextArea

JComponent預設雙緩衝,提示資訊,setToolTips()

與AWT組件不同,Swing組件不能直接添加到頂層容器中,它必須添加到一個與Swing頂層容器相關聯的內容面板上,內容面板是頂層容器包含的一個普通容器,它是一個輕量級組件,基本規則:
把Swing組件放入一個頂層Swing容器的內容面板上
(方法一:frame.getContentPane().add(childComponent));
方法二: 建立一個JPanel或者JDesktopPane之類的中間容器,把組件添加到容器中,用setContentPane()
避免使用非Swing的重量級組件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.