Swing Event Java Tutorial

import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Test extends JFrame {
  JTabbedPane tabs = new JTabbedPane();
  public Test() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel p = new JPanel();
    p.add(new JButton("Button on Tab 0"));
    tabs.addTab("Tab 0", p);
    p = new JPanel();
    p.add(new JTextField("Text on Tab 1"));
    tabs.addTab("Tab 1", p);
    tabs.addChangeListener(new ChangeListener() {
      public void stateChanged(ChangeEvent e) {
        System.out.println("Tab=" + tabs.getSelectedIndex());
      }
    });
    getContentPane().add(tabs, "Center");
    pack();
  }
  public static void main(String[] args) {
    new Test().setVisible(true);
  }
}