Java组件继承LnF

Java组件继承LnF,java,swing,look-and-feel,jcomponent,Java,Swing,Look And Feel,Jcomponent,我从零开始制作了一个JComponent儿童,并为其制作了基于基本元素和金属元素的外观和手感。即使我对整个应用程序使用金属主题,我仍然必须调用对象上的setUI使其金属化。如果当前LnF可用且默认为basic,是否有任何方法可供其使用?您可以覆盖JComponent中的updateUI(),并安装所需的任何自定义设置: @Override public void updateUI() { super.updateUI(); // customize here } 不要在一个容器

我从零开始制作了一个JComponent儿童,并为其制作了基于基本元素和金属元素的外观和手感。即使我对整个应用程序使用金属主题,我仍然必须调用对象上的setUI使其金属化。如果当前LnF可用且默认为basic,是否有任何方法可供其使用?

您可以覆盖
JComponent中的
updateUI()
,并安装所需的任何自定义设置:

@Override
public void updateUI() {
    super.updateUI();
    // customize here
}

不要在一个容器中混合两个L&F,这是可能的,但麻烦之路,无论如何,为了更好的帮助,请尽快发布一个简短的、可运行的、可编译的,大约在上午一点。isszeI没有尝试混合它们,我希望我制作的组件的实例能够自动选择正确的L&F。默认情况下,我的应用程序是metal,但如果我简单地添加组件,它会选择基本的L&F。它直接扩展
JComponent
,因此
super.updateUI()
什么也不做。我想因为我自己画所有的画,我可能不得不放弃使用一些东西,比如如果(当前的主题是这个)使用这个UI,等等。你对
super
的看法是正确的`JComponent#updateUI()也是空的。