jTabbedPane设置活动选项卡文本属性

时间:2013-06-18 22:21:18

标签: text properties fonts bold tabbed

我有一个带有多个标签的jTabbedPane。我试图使所选/活动选项卡的标题文本变为粗体。有一种简单的方法可以做到这一点吗?

2 个答案:

答案 0 :(得分:0)

JTabbedPane pane = new JTabbedPane();
pane.addChangeListener(new ChangeListener(){

 @Override
 public void stateChanged(ChangeEvent e) {
     JTabbedPane source = (JTabbedPane) e.getSource();
     // Set all tabs to PLAIN font
     for(int i = 0; i < source.getTabCount(); i++) {
         Component c = source.getTabComponentAt(i);
         c.setFont(c.getFont().deriveFont(Font.PLAIN));
     }
     Component selectedComp = source.getTabComponentAt(source.getSelectedIndex());
     // Set selected component to BOLD
     selectedComp.setFont(selectedComp.getFont().deriveFont(Font.BOLD));
     }
});

试试这个,我写得很快,也许你需要对初始标签做一些调整,不知道肯定。

也不确定你是否需要JTabbedPane.getTabComponentAt(int idx)或JTabbedPane.getComponentAt(int idx),尽管我认为第一个版本是正确的。

答案 1 :(得分:0)

我知道这个问题是很久以前提出的,但最近我也想这样做。我找到了答案here。解决方案是两件事之一:

  1. 使用tabbedPane.setTitleAt(currSelextedIdx, "<html><b>My tab title</b></html>");
  2. 为选项卡式窗格创建自己的UI实施

我个人使用了第一个选项,并在进行更改时将所有其他选项卡设置回常规选项卡标题。初始化所有标签后,我还使初始标签变为粗体(可以在初始化时完成)。