代码之家  ›  专栏  ›  技术社区  ›  CtrlF

Swing:JTabbedPane组件子类的自定义LaF

  •  0
  • CtrlF  · 技术社区  · 12 年前

    如何将JTabbedPane划分为子类,并为子类的每个实例提供与默认LaF不同的外观?我仍然希望访问默认的JTabbedPanel,所以简单地覆盖全局LaF是不可行的。

    谢谢

    1 回复  |  直到 12 年前
        1
  •  1
  •   Jasper Siepkes    12 年前

    您可以通过调用setUI(TabbedPaneUI-UI)方法手动设置JTabbedPane(以及大多数其他JComponent)的特定UI实现。

    例如,要将特定的JTabbedPane设置为使用“金属外观”:

    JTabbedPane fooPane = new JTabbedPane();
    fooPane.setUI(MetalTabbedPaneUI.createUI(fooPane));
    

    当创建JTabbedPane的子类(就像您所做的那样)时,您需要覆盖方法updateUI(),如下所示:

    public void updateUI() {
        setUI(MetalTabbedPaneUI.createUI(this));
    }