Możemy użyć klasy FileSystemView
i dostać go za obiekt wywołując getFileSystemView()
statycznej metody w nim, a następnie użyć metody getSystemIcon()
która przyjmuje File
obiekt i zwraca ją za ikonę.
FileSystemView
i FileView
klasy są dostępne w pakiecie javax.swing.filechooser
. File
klasa znajduje się w pakiecie java.io
.
Uwaga:FileSystemView
nie obejmuje FileView
. Stąd nie można używać FileSystemView
obiekt w jf.setFileView()
JFileChooser jf=new JFileChooser();
jf.setFileView(new MyFileView());
jf.showOpenDialog(this);
class MyFileView extends FileView
{
public Icon getIcon(File f)
{
FileSystemView view=FileSystemView.getFileSystemView();
return view.getSystemIcon(f);
}
}
this
reprezentuje bieżącą klatkę. Załóżmy, że klasa, w której ten kod jest napisany jest sub klasa JFrame
lub w prosty sposób,
jf.setFileView(new FileView(){
public Icon getIcon(File f)
{
return FileSystemView.getFileSystemView().getSystemIcon(f);
}
});
proszę [przyjąć] (http://meta.stackexchange.com/a/65088/155831) odpowiedź czy to pomogło rozwiązać problem. To samo można powiedzieć o wielu [wcześniejszych pytaniach] (http://stackoverflow.com/users/2534090/javatechnical?tab=questions). Oczywiście, zauważając tę na tej stronie bez odpowiedzi, zawsze istnieje możliwość jej usunięcia (lub oznaczania jej do usunięcia). –