利便的转换
假如我们恒久费力不懈地操作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
在这一节里呈现的所有的措施都将需要一个沟通的窗体来运行它们。