// Purpose.  JTabbedPane demo

import javax.swing.*;         // UIManager, JFrame, JTabbedPane 
import java.awt.event.*;      // WindowAdapter, WindowEvent
import javax.swing.event.*;   // ChangeListener, ChangeEvent 

public class JTabbedPaneDemo {
   public static void main( String[] args ) {
      UIManager.LookAndFeelInfo[] lfInfo = UIManager.getInstalledLookAndFeels();

      System.out.print( "Choose a look-and-feel - " );
      for (int i=0; i < lfInfo.length; i++)
         System.out.print( "(" + i + ") "+ lfInfo[i].getName() + " - " );
      int ans = Read.anInt();
      try {
         UIManager.setLookAndFeel( lfInfo[ans].getClassName() );
      } catch (Exception ex) {
         System.out.println( ex );
      }

      JFrame frame = new JFrame( "JTabbedPane demo" );
      frame.addWindowListener( new WindowAdapter() {
         public void windowClosing( WindowEvent e ) { System.exit( 0 ); } } );
      String[] choices = { "Alpha","Bravo","Charlie","Delta","Echo","Foxtrot" };

      JTabbedPane tabs = new JTabbedPane();
      tabs.addChangeListener( new ChangeListener() {
         public void stateChanged( ChangeEvent e ) {
            JTabbedPane tp = (JTabbedPane) e.getSource();
            System.out.println( tp.getTitleAt( tp.getSelectedIndex() ) );
         }
      } );

      tabs.addTab( "Buttons", null, JButtonDemo.createButtons( choices ) );
      tabs.addTab( "Checks",  null, JCheckBoxDemo.createCheckBoxes( choices ) );
      tabs.addTab( "Radios",  null, JRadioButtonDemo.createRadioButtons(
                                                          choices ) );
      tabs.addTab( "List",    null, JListDemo.createList( choices ) );
      tabs.addTab( "Combo",   null, JComboBoxDemo.createComboBox( choices ) );
      tabs.addTab( "Table",   null, JTableDemo.createTable() );
      tabs.addTab( "Tree",    null, JTreeDemo.createTree() );

      frame.getContentPane().add( tabs );
      frame.pack();
      frame.setVisible( true );
   }
}
