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