现在,我将LaF设置如下:UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());它可以正常工作,并提供我想要的外观。可悲的是,在我的代码中,我不得不手动设置一些图标,因为这些图标的自动设置不能正常工作(设置错误的图标)。我目前有:

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


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



我目前得到的设计:

java - 没有硬编码值的外观-LMLPHP

我想要的设计:

java - 没有硬编码值的外观-LMLPHP

最佳答案

尝试使用UIDefaults类获取值:

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


检出UIManager Defaults。更改LAF时,此图标也会更改。

关于java - 没有硬编码值的外观,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50798511/

10-09 09:24