【问题标题】:How set different colors for different selected tabs of a JTabbedPane?如何为 JTabbedPane 的不同选定选项卡设置不同的颜色?
【发布时间】:2012-01-08 22:30:55
【问题描述】:

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

【问题讨论】:

    标签: swing jtabbedpane


    【解决方案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);
          }
          ...
       }
    } );
    

    【讨论】:

    • 这并没有我试图产生的行为。使用您的方法,所有选项卡都以默认颜色开始。选择选项卡后,选项卡颜色将更改为代码中指定的颜色,但实际绘制的是默认选择的选项卡颜色。传递到 setBackgroundAt() 的颜色在选择新选项卡之前不会出现。
    • @lalalainexd 这只是一个例子。您可以根据需要更改 stateChanged 方法的代码,例如将未选中的选项卡的背景颜色设置回默认值(使用 null)。
    • @lalalainexd int index = pane.getSelectedIndex();颜色选择Color = index==0?Color.red:index==1?Color.green:Color.yellow; for(int i=0; int
    猜你喜欢
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 2013-11-22
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多