Mega Code Archive

 
Categories / Java / Swing Components
 

Color TabbedPane Example 3

// Example from http://www.crionics.com/products/opensource/faq/swing_ex/SwingExamples.html /* (swing1.1.1) */ import java.awt.Color; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTabbedPane; import javax.swing.UIManager; /**  * @version 1.0 08/23/99  */ public class ColorTabbedPaneExample3 extends JFrame {   String[] titles = { "blue", "cyan", "green", "yellow", "orange", "pink",       "red" };   Color[] colors = { Color.blue, Color.cyan, Color.green, Color.yellow,       Color.orange, Color.pink, Color.red };   JTabbedPane tabbedPane;   public ColorTabbedPaneExample3() {     super("ColorTabbedPaneExample (windows)");     tabbedPane = new ColoredTabbedPane();     for (int i = 0; i < titles.length; i++) {       tabbedPane.addTab(titles[i], createPane(titles[i], colors[i]));       tabbedPane.setBackgroundAt(i, colors[i].darker());     }     tabbedPane.setSelectedIndex(0);     getContentPane().add(tabbedPane);   }   JPanel createPane(String title, Color color) {     JPanel panel = new JPanel();     panel.setBackground(color);     JLabel label = new JLabel(title);     label.setOpaque(true);     label.setBackground(Color.white);     panel.add(label);     return panel;   }   class ColoredTabbedPane extends JTabbedPane {     public Color getBackgroundAt(int index) {       if (index == getSelectedIndex()) {         return colors[index];       } else {         return super.getBackgroundAt(index);       }     }   }   public static void main(String[] args) {     try {       UIManager           .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");     } catch (Exception ex) {       ex.printStackTrace();     }     JFrame frame = new ColorTabbedPaneExample3();     frame.addWindowListener(new WindowAdapter() {       public void windowClosing(WindowEvent e) {         System.exit(0);       }     });     frame.setSize(360, 100);     frame.setVisible(true);   } }