【发布时间】:2013-04-17 05:59:22
【问题描述】:
如何子类化 JTabbedPane 并为子类的每个实例赋予与默认 LaF 不同的外观?我仍然想访问默认的 JTabbedPanel,因此不能简单地覆盖全局 LaF。
谢谢。
【问题讨论】:
标签: java swing look-and-feel
如何子类化 JTabbedPane 并为子类的每个实例赋予与默认 LaF 不同的外观?我仍然想访问默认的 JTabbedPanel,因此不能简单地覆盖全局 LaF。
谢谢。
【问题讨论】:
标签: java swing look-and-feel
您可以通过调用 setUI(TabbedPaneUI ui) 方法手动设置 JTabbedPane(和大多数其他 JComponents)的特定 UI 实现。
例如设置一个特定的 JTabbedPane 使用 Metal Look and Feel 使用:
JTabbedPane fooPane = new JTabbedPane();
fooPane.setUI(MetalTabbedPaneUI.createUI(fooPane));
在创建 JTabbedPane 的子类(如您所做的那样)时,您需要像这样覆盖方法 updateUI():
public void updateUI() {
setUI(MetalTabbedPaneUI.createUI(this));
}
【讨论】:
this.setUI(MetalTabbedPaneUI.createUI(this)); 并且(在 OS X 上)当我使用 MetalPane 而不是 JTabbedPane 时,它似乎没有任何影响