我有一个带有多个标签的jTabbedPane。我试图使所选/活动选项卡的标题文本变为粗体。有一种简单的方法可以做到这一点吗?
答案 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。解决方案是两件事之一:
tabbedPane.setTitleAt(currSelextedIdx, "<html><b>My tab title</b></html>");
我个人使用了第一个选项,并在进行更改时将所有其他选项卡设置回常规选项卡标题。初始化所有标签后,我还使初始标签变为粗体(可以在初始化时完成)。