Reputation: 21
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
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