Swing JFC Java

/*
Core SWING Advanced Programming 
By Kim Topley
ISBN: 0 13 083292 8       
Publisher: Prentice Hall  
*/
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.Timer;
import javax.swing.UIManager;
public class EditabilityExample {
  public static void main(String[] args) {
    try {
        UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
    } catch (Exception evt) {}
  
    JFrame f = new JFrame("Editability Example");
    f.getContentPane().setLayout(
        new BoxLayout(f.getContentPane(), BoxLayout.Y_AXIS));
    f.getContentPane().add(firstField);
    JTextField tf = new JTextField("A read-only text field", 20);
    tf.setEditable(false);
    f.getContentPane().add(tf);
    JTextArea ta = new JTextArea("An editable\ntext area", 2, 20);
    ta.setBorder(BorderFactory.createLoweredBevelBorder());
    f.getContentPane().add(ta);
    ta = new JTextArea("A read-only\ntext area", 2, 20);
    ta.setBorder(BorderFactory.createLoweredBevelBorder());
    ta.setEditable(false);
    f.getContentPane().add(ta);
    f.pack();
    f.show();
    if (args.length == 1 && args[0].equals("disable")) {
      // Toggle the enabled state of the first
      // text field every 10 seconds
      Timer t = new Timer(10000, new ActionListener() {
        public void actionPerformed(ActionEvent evt) {
          firstField.setEnabled(!firstField.isEnabled());
          firstField.setText(firstFieldText
              + (firstField.isEnabled() ? "" : " (disabled)"));
        }
      });
      t.start();
    }
  }
  final static String firstFieldText = "An editable text field";
  final static JTextField firstField = new JTextField(firstFieldText, 20);
}