Я буду краток; Я хотел бы изменить цвет JTree с синего цвета Metal LF по умолчанию на серый. Я уже смотрел на ExtendedJTreeCellRenderer безрезультатно. Можно ли это сделать с помощью UIManager, если нет, можно ли это сделать без необходимости настраивать значок дерева? У меня 10+ лет с Java, спасибо.
public static class ExtendedJTreeCellRenderer extends DefaultTreeCellRenderer
{
@Override
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row, boolean hasFocus)
{
JComponent c = (JComponent) super.getTreeCellRendererComponent(tree, value, isSelected, expanded, leaf, row, hasFocus);
Graphics graphics = c.getGraphics();
if(graphics!=null) graphics.setColor(Color.GRAY);
c.setForeground(new Color(140,140,140));
c.setBackground(new Color(8,8,8));
c.setFont(new Font("Georgia", Font.PLAIN, 12));
c.setOpaque(true);
//
this.setClosedIcon(new ImageIcon("images\\folder001.png"));
//this.setOpenIcon(new ImageIcon(""));
//this.setLeafIcon(new ImageIcon(""));
//
return c;
}
}
Graphics graphics = c.getGraphics();
очень плохая идея, не делайте этого - person MadProgrammer   schedule 09.05.2020UIManager.getLookAndFeelDefaults().put("Tree.background", Color.GRAY);
? - person Abra   schedule 09.05.2020