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

问题描述:

如何继承JTabbedPane并为每个子类的实例提供与默认LaF不同的Look-and-Feel?我仍然想要访问默认的JTabbedPanel,所以简单地覆盖全局LaF不是一个选项。Swing:JTabbedPane组件子类的自定义LaF

谢谢。

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

例如设置一个特定的JTabbedPane中使用的金属外观和感觉使用:

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

当创建一个子类(像你这样做)JTabbedPane的,你需要重写这样的方法updateUI() :

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

所以,这里是我在做什么在我的构造函数: 'this.setUI(MetalTabbedPaneUI.createUI(本));' 和(在OS X)它不会出现有当我使用MetalPa时有任何影响ne而不是JTabbedPane – CtrlF

+0

更新了我对你的用例的回答。这有帮助吗? –

+0

啊,那是做的。谢谢! – CtrlF