AWT:抽象窗口工具集,是Sun公司在Java 1.0版本中提供一種最原始的圖形界面類庫。圖形的元素委託給操作系統平臺。
不同的操作系統平臺下,圖形元素的屬性和行爲會有差別。平臺移植性很差。
Swing:Java SE 後來的版本中,在AWT的基礎上重新提供了一套新的國形界面類庫。圖形的元素全部用Java語言重新編寫。
與具體的操作系統無關,移植性高。
Swing並沒有取代AWT,它只是在AWT的基礎上進行修改,提供功能更強大的組件。
2. JFC:Java基礎類庫,它提供了一套對圖形界面編程的包。包括:Swing的API、2D編程API、可插撥的觀感API、國際化API等。
3. Swing的容器:可以存放其它組件的組件。
a) 頂層容器:獨立存在。
javax.swing.JFrame:窗體。帶標題欄和重置角標。默認是BorderLayout佈局管理器。
常用方法:void setTitle(String title);
void setSize(int width, int height);
void setLocation(int x, int y);
void setBounds(int x, int y, int width, int height);
void setResizable(boolean flag);
void setDefaultCloseOperation(int i);
void setVisible(boolean flag);
void dispose();
void setLayout(LayoutManager lm);
Component add(Component comp);
javax.swing.JDialog:對話框。
javax.swing.JWindow:跟窗體幾乎一樣,只是不標題欄和重置角標。
b) 通用容器:不能獨立存在,需要存放到其它容器中。
javax.swing.JPanel:面板。 默認是FlowLayout佈局管理器。
常用方法跟JFrame類似。
4. 佈局管理器:java.awt包有基本的,javax.swing有一些增強的。
a) FlowLayout:流佈局。對齊方式,水平間距和垂直間距。
b) BorderLayout:邊框佈局。 北、東、南、西、中。水平間距和垂直間距。
c) GridLayout:網格佈局。把窗體分爲幾行幾列。以行爲準。
5. GUI的事件處理:
a) 事件三要素:
事件源:發生事件的組件。
事件類型:用戶對組件進行的操作。是哪一類型的事件。
事件處理器:對事件作出響應,對事件進行處理的程序。
b) 對組件註冊事件監聽器(XxxListener)。當該組件發生相應類型的事件時。
JVM會創建一個事件(XxxEvent)對象,調用事件監聽器中的處理方法(xxxPerformed),也叫回調方法。
c) 事件類型、事件對象與及對應的事件監聽器接口:
動作Action--> ActionEvent --> ActionListener
鼠標Mouse --> MouseEvent --> MouseListener
鍵盤Key --> KeyEvent --> KeyListener
窗體Window--> WindowEvent --> WindowListener
6. Swing的組件。
a) JLabel
b) JButton
c) JTextField
d) JTextArea ---> JScollPane
e) JPasswordField
f) JRadioButton --> ButtonGroup
g) JCheckButton --> 複選
h) JComboBox 特殊
i) Border --> BorderFactory
j) JOpetionPane --> showMessageDialog();
k) JFileChooser
l) JScollBar
m) JMenuBar, JMenu, JMenuItem, JCheckMeunItem, JRadioMenuItem, JPopupMenu