如果我們長期艱苦不懈地利用Java 1.1版構建我們的UI,我們並不需要扔掉它改變到Swing陣營中來。幸運的是,庫被設計得允許容易地修改——在很多情況下我們可以簡單地放一個“J”到我們老AWT組件的每個類名前面即可。下面這個例子擁有我們所熟悉的特色:
//: JButtonDemo.java
// Looks like Java 1.1 but with J's added
package c13.swing;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
public class JButtonDemo extends Applet {
JButton
b1 = new JButton("JButton 1"),
b2 = new JButton("JButton 2");
JTextField t = new JTextField(20);
public void init() {
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e){
String name =
((JButton)e.getSource()).getText();
t.setText(name + " Pressed");
}
};
b1.addActionListener(al);
add(b1);
b2.addActionListener(al);
add(b2);
add(t);
}
public static void main(String args[]) {
JButtonDemo applet = new JButtonDemo();
JFrame frame = new JFrame("TextAreaNew");
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
frame.getContentPane().add(
applet, BorderLayout.CENTER);
frame.setSize(300,100);
applet.init();
applet.start();
frame.setVisible(true);
}
} ///:~
這是一個新的輸入語句,但此外任何事物除了增加了一些“J”外,看起都像這Java 1.1版的AWT。同樣,我們不恰當的用add()方法增加到Swing JFrame中,除此之外我們必須像上面看到的一樣先准備一些“content pane”。我們可以容易地得到Swing一個簡單的改變所帶來的好處。
因為程序中的封裝語句,我們不得不調用像下面所寫的一樣調用這個程序:
java c13.swing.JbuttonDemo
在這一節裡出現的所有的程序都將需要一個相同的窗體來運行它們。