如何为JTabbedPane的不同选定选项卡设置不同的颜色?

时间:2011-11-29 15:19:22

标签: swing jtabbedpane

我正在尝试创建一个带有选项卡的JTabbedPane,这些选项卡在选择时会有不同的颜色。例如,假设我有选项卡A,B和C.如果未选择选项卡,则选项卡颜色将是默认选项卡。如果选择了选项卡A,则选项卡颜色将变为红色。如果选择了选项卡B,则选项卡颜色将变为绿色。如果选择了选项卡C,则选项卡颜色将变为黄色。我怎样才能实现这种行为?我能找到的最接近的方法是调用UIManager.put("TabbedPane.selected", Color.RED),但这会将所有选定选项卡的颜色设置为红色。

1 个答案:

答案 0 :(得分:1)

为选择添加侦听器,然后相应地更改背景。类似的东西:

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);
      }
      ...
   }
} );