Java tutorial
import java.awt.Color; import java.awt.Component; import java.awt.Graphics; import java.io.File; import javax.swing.Icon; import javax.swing.JFileChooser; import javax.swing.filechooser.FileView; public class Main { public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); FileView view = new JavaFileView(); fileChooser.setFileView(view); int status = fileChooser.showOpenDialog(null); if (status == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); System.out.println(selectedFile.getParent()); System.out.println(selectedFile.getName()); } else if (status == JFileChooser.CANCEL_OPTION) { System.out.println("JFileChooser.CANCEL_OPTION"); } } } class JavaFileView extends FileView { Icon javaIcon = new MyIcon(Color.BLUE); Icon classIcon = new MyIcon(Color.GREEN); Icon htmlIcon = new MyIcon(Color.RED); Icon jarIcon = new MyIcon(Color.PINK); public String getName(File file) { String filename = file.getName(); if (filename.endsWith(".java")) { String name = filename + " : " + file.length(); return name; } return null; } public String getTypeDescription(File file) { String typeDescription = null; String filename = file.getName().toLowerCase(); if (filename.endsWith(".java")) { typeDescription = "Java Source"; } else if (filename.endsWith(".class")) { typeDescription = "Java Class File"; } else if (filename.endsWith(".jar")) { typeDescription = "Java Archive"; } else if (filename.endsWith(".html") || filename.endsWith(".htm")) { typeDescription = "Applet Loader"; } return typeDescription; } public Icon getIcon(File file) { if (file.isDirectory()) { return null; } Icon icon = null; String filename = file.getName().toLowerCase(); if (filename.endsWith(".java")) { icon = javaIcon; } else if (filename.endsWith(".class")) { icon = classIcon; } else if (filename.endsWith(".jar")) { icon = jarIcon; } else if (filename.endsWith(".html") || filename.endsWith(".htm")) { icon = htmlIcon; } return icon; } } class MyIcon implements Icon { Color myColor; public MyIcon(Color myColor) { this.myColor = myColor; } public int getIconWidth() { return 16; } public int getIconHeight() { return 16; } public void paintIcon(Component c, Graphics g, int x, int y) { g.setColor(myColor); g.drawRect(0, 0, 16, 16); } }