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));
}
所以,这里是我在做什么在我的构造函数: 'this.setUI(MetalTabbedPaneUI.createUI(本));' 和(在OS X)它不会出现有当我使用MetalPa时有任何影响ne而不是JTabbedPane – CtrlF
更新了我对你的用例的回答。这有帮助吗? –
啊,那是做的。谢谢! – CtrlF