lalalainexd
lalalainexd

Reputation: 21

How set different colors for different selected tabs of a JTabbedPane?

I'm trying to create a JTabbedPane with tabs that will have different colors when selected. For example, let's say I have tabs A, B, and C. If a tab is not selected, then the tab color will be the default. If tab A is selected, then the tab color will change to red. If tab B is selected, then the tab color will change to green. If tab C is selected, then the tab color will change to yellow. How can I achieve this behavior? The closest method I could find was calling UIManager.put("TabbedPane.selected", Color.RED) but this sets the color of all selected tabs to red.

Upvotes: 2

Views: 1396

Answers (1)

staticman
staticman

Reputation: 728

Add a listener for the selection and then change the background accordingly. Something like:

pane.addChangeListener( new ChangeListener() {
   public void stateChanged( ChangeEvent e ) {
      int index = pane.getSelectedIndex();
      if( index == 0 ) {
        pane.setBackgroundAt( 0, Color.RED );
      } else if( index == 1 ) {
        pane.setBackgroundAt( 0, Color.GREEN);
      }
      ...
   }
} );

Upvotes: 1

Related Questions