Я внедряю пользовательский файл файловой системы и хочу правильно установить значки для узлов в моей виртуальной файловой системе. Для последовательности я хотел бы использовать некоторые из тех же значков, что и при внешнем виде (в частности Windows L & F). Если я пытался получить значки, используя метод uimanager.geticon , но кажется, что значок возврата от неправильного взгляда и ощущения. Каждый второй значок - это значок каталога от Uimanager, совершенно отличный от значков папки системы, я думаю, что это может быть от металла. Я думал, что это будет просто. Я попробовал несколько вариантов (например, uimanager.getlookandfeel (). GetDefaults () ), но для меня ничего не сработало.
Вот пример кода:
import javax.swing.*;
import javax.swing.filechooser.FileView;
import java.io.File;
public class TestIcon {
private TestIcon() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception ex) {
throw new IllegalStateException("Error initializing L&F", ex);
}
JFileChooser jfc = new JFileChooser();
jfc.setFileView(new MyFileView());
jfc.showOpenDialog(null);
}
private static class MyFileView extends FileView {
static int count = 0;
@Override
public Icon getIcon(File f) {
if (count++%2 == 0)
return super.getIcon(f);
else
return UIManager.getIcon("FileView.directoryIcon");
}
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
new TestIcon();
});
}
}
Подробнее здесь: https://stackoverflow.com/questions/796 ... -feel-icon