Я недавно пытался конвертировать систему в единый вид (в данном случае Nimbus). Однако некоторые компоненты требуют изменения по умолчанию, и я не хочу просто изменять значения по умолчанию из-за одного компонента.JTree игнорирует переопределения LaF
Я пытаюсь переопределить цвет выделения строки для компонента JTree. Мне удалось полностью отключить его, но это не то, что мне нужно.
Читая различные вопросы, здесь я попытался с помощью:
UIDefaults overrides = new UIDefaults();
overrides.put("Tree.selectionBackground", new Color(200,200,200));
overrides.put("nimbusSelectionBackground", new Color(200,200,200));
modelTree = new ModelTree(treeModel);
modelTree.putClientProperty("Nimbus.Overrides", overrides);
modelTree.putClientProperty("Nimbus.Overrides.InheritDefaults",true);
Где modelTree расширяет стандартный JTree. Без этих переопределений внешний вид полностью дефолт, и я знаю, что нет ничего переопределения этих свойств в классе derrived.
Проблема в том, что свойства игнорируются, цвет остается таким же, как и по умолчанию, тогда как InheritDefaults истинно, а подсветка строки отключается, когда она ложна.
То, что я делаю, это простое перекрашивание подсветки строки.
Заранее спасибо
EDIT:
public static class treeTest extends JPanel {
public treeTest() {
super();
try {
UIManager.setLookAndFeel(NimbusLookAndFeel.class.getName());
} catch (Exception e) {
e.printStackTrace();
}
//UIManager.put("Tree.selectionForeground", Color.BLACK);
UIDefaults overrides = new UIDefaults();
overrides.put("Tree.selectionForeground", Color.BLACK);
JTree defaultsTree = new JTree();
JTree overiddenTree = new JTree();
overiddenTree.putClientProperty("Nimbus.Overrides", overrides);
overiddenTree.putClientProperty("Nimbus.Overrides.InheritDefaults", false);
add(defaultsTree);
add(overiddenTree);
}
}
Я надеюсь, что это является приемлемым SSCCE (Это первый раз, когда я сделал один). Следует переопределить цвет текста по умолчанию для выбранной строки для компонента oversideTree, но это не так.
Разоружение строки, которая перезаписывает значение по умолчанию, делает то же самое, но работает для всех экземпляров.
для лучшей помощи рано опубликовать SSCCE/MCVE, короткий, работоспособный, компилируется, – mKorbel
Ahh OFC, спасибо. Я новичок во всем этом, поэтому я постараюсь создать один asap – Saquesh