圖形使用者界面3要素:
- 放置元件的容器(例如窗體、對話框、中間容器)
- 在容器中的元件(按鈕、文本框、菜單等)
- 事件監聽處理機制
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class TestGUI extends JFrame implements ActionListener{
JButton english = new JButton("English Title");
JButton 中文 = new JButton("中文标題");
TestGUI(){
setLayout(new FlowLayout());
add(english);
add(中文);
english.addActionListener(this);
中文.addActionListener(this);
setLocation(100, 100);
setSize(250, 150);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent ae) {
if(ae.getSource() == english) {
this.setTitle("The first GUI");
}
if(ae.getSource() == 中文){
this.setTitle("第一個圖形界面");
}
}
public static void main(String[ ] args) {
new TestGUI();
}
}
java.awt包
基本元件包括
• Button、Label、TextField、TextArea、List、
Checkbox、Menu、MenuBar等
容器元件包括
• Frame、Dialog、Applet和Panel
java.awt包中的元件稱為AWT元件
javax.swing包
- 這個包中提供了與java.awt包中幾乎完全相對應的元件
- javax.swing包中的JButton類與java.awt包中的Button類相對應,JFrame類與Frame類相對應
- javax.swing包中的元件稱為Swing元件
java.awt包和javax.swing包
- 開發javax.swing包的主要目的是為了程式的可移植性
- AWT元件類建立的對象在具體的機器上要有一個“對等體” 負責程式的運作,在不同機器上的程式會略有差别,占用資源多,并且複雜的使用者界面程式難于調試
- Swing元件類取消了對等體,直接針對不同的系統解釋執行位元組碼,使得程式消耗資源少,并且在不同機器上運作時幾乎看不出界面的差别由于消耗資源的程度不同,把有對等體的AWT元件稱為重元件,而沒有對等體的Swing元件稱為輕元件
- 在今後的程式設計過程中要盡量采用輕元件,盡量避免采用重元件