@KT:Listing 1: SwingGui.java
@LI:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class SwingGui {

 private final int WINDOW_WIDTH=300, WINDOW_HEIGHT=200;
 private JFrame      iMainWindow;
 private JPanel      iInputPanel;
 private JLabel      iLabel;
 private JTextArea   iTextArea;
 private JTextField  iTextField;
 private JButton     iButton;

  public SwingGui() {
    iMainWindow = new JFrame("Swing-Example");
    iMainWindow.addWindowListener(
      new WindowAdapter() {
        public void windowClosing(WindowEvent e) {
          exit();
        }
    });
  }

 private void createGUI() {
    iMainWindow.getContentPane().setLayout
       (new GridLayout(2,1,0,5));
    iTextArea = new JTextArea();
    createPanel();
    iMainWindow.getContentPane().add(iTextArea);
    iMainWindow.getContentPane().add(iInputPanel);
    iMainWindow.setJMenuBar(createMenuBar());
 }

 private void createPanel() {
   iInputPanel = new JPanel();
   iInputPanel.setLayout(new FlowLayout());
   iLabel     = new JLabel("Text: ");
   iTextField = new JTextField(10);
   iButton    = new JButton("Add");
   iInputPanel.add(iLabel);
   iInputPanel.add(iTextField);
   iInputPanel.add(iButton);

   iButton.addActionListener(new ActionListener() {
       public void actionPerformed(ActionEvent e) {
        iTextArea.append(iTextField.getText());
        iTextArea.append("\n");
       }
     }
   );
 }

  private JMenuBar createMenuBar() {
    JMenuBar  mb   = new JMenuBar();
    JMenu     fileMenu = new JMenu("File");
    JMenu     helpMenu = new JMenu("Help");
    JMenuItem exitItem = new JMenuItem("Exit");
    JMenuItem aboutItem = new JMenuItem("About...");

    mb.add(fileMenu);
    mb.add(helpMenu);
    fileMenu.add(exitItem);
    helpMenu.add(aboutItem);

    exitItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          exit();
        }
      }
    );
    aboutItem.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          about();
        }
      }
    );
    return mb;
  }

  private void show() {
    iMainWindow.setSize(WINDOW_WIDTH,WINDOW_HEIGHT);
    Dimension screenSize =
      Toolkit.getDefaultToolkit().getScreenSize();
    iMainWindow.setLocation
       ((screenSize.width - WINDOW_WIDTH)/2,
       (screenSize.height - WINDOW_HEIGHT)/2);
    iMainWindow.setVisible(true);
    iMainWindow.show();
    iTextField.requestFocus();
  }

  void exit() {
    iMainWindow.setVisible(false);
    iMainWindow.dispose();
    System.exit(0);
  }

  void about() {
    JOptionPane.showMessageDialog(iMainWindow,
       "Swing-Example class: " +
        SwingGui.class.getName(),
       "About Swing-Example",
       JOptionPane.INFORMATION_MESSAGE);
  }

  public static void main(String argv[]) {
    SwingGui main = new SwingGui();
    main.createGUI();
    main.show();
  }
}