如果我們長期艱苦不懈地利用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
在這一節裡出現的所有的程序都將需要一個相同的窗體來運行它們。