我正在尝试自己的外观和感觉,但是当我尝试创建任何UI时,它指向错误的位置。
当我尝试将其添加到UIDefaults时:
import javax.swing.plaf.basic.BasicTreeUI;
public class TreeUI extends BasicTreeUI{
@Override
public String toString() {
return "Test run!";
}
}
然后我创建的JTree对象获取BasicTreeUI对象。但奇怪的是,如果我尝试使用它:
import javax.swing.plaf.metal.MetalTreeUI;
public class TreeUI extends MetalTreeUI {
@Override
public String toString() {
return "Test run!";
}
}
JTree改为获取MetalTreeUI对象。这与任何其他更改无关。在两种情况下,toString都不会覆盖。
如何正确实现为JTree使用TreeUI对象的TreeUI?
Caller for reference(class extends MetalLookAndFeel):
@Override
protected void initClassDefaults(UIDefaults table) {
super.initClassDefaults(table);
table.put("TreeUI", "someCorrectPath.TreeUI");
}
编辑:当我尝试将TreeUI放在包装器中时,它仍然默认为MetalTreeUI或BasicTreeUI,而不是仅仅获取当前正在扩展的内容。