没有硬编码值的外观和感觉

时间:2018-06-11 13:08:35

标签: java swing look-and-feel uimanager

现在我像这样设置了LaF:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());它工作正常并且给出了我想拥有的外观和感觉。遗憾的是,在我的代码中,我必须手动设置一些图标,因为这些图标的自动设置无法正常工作(设置错误的图标)。我目前有:

if (node.getAllowsChildren()) {
    setIcon(UIManager.getIcon("FileView.directoryIcon"));
}else {
    setIcon(UIManager.getIcon("FileView.fileIcon"));
}

但它没有使用LaF图标,我不知道如何找到看起来像LaF的图标。所以我的问题是,是否有一种简单的方法让我们说LaF文件夹图标?

我目前得到的设计:

enter image description here

我想要的设计:

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试使用UIDefaults类来获取值:

UIDefaults defaults = UIManager.getLookAndFeelDefaults();
Icon icon = (Icon)defaults.get(...);

结帐UIManager Defaults。更改LAF时,此图标会发生变化。

相关问题