Java by API/javax.swing/JFileChooser
Содержание
- 1 JFileChooser: addActionListener(ActionListener l)
- 2 JFileChooser: addChoosableFileFilter(FileFilter filter)
- 3 JFileChooser: addPropertyChangeListener(PropertyChangeListener listener)
- 4 JFileChooser.APPROVE_OPTION
- 5 JFileChooser.CANCEL_OPTION
- 6 JFileChooser: createDialog(Component parent)
- 7 JFileChooser.DIRECTORIES_ONLY
- 8 JFileChooser.DIRECTORY_CHANGED_PROPERTY
- 9 JFileChooser.ERROR_OPTION
- 10 JFileChooser: getCurrentDirectory()
- 11 JFileChooser: getFileSystemView()
- 12 JFileChooser: getSelectedFile()
- 13 JFileChooser: getTypeDescription(File f)
- 14 JFileChooser: isFileHidingEnabled()
- 15 JFileChooser.SELECTED_FILE_CHANGED_PROPERTY
- 16 JFileChooser.SELECTED_FILES_CHANGED_PROPERTY
- 17 JFileChooser: setAccessory(JComponent newAccessory)
- 18 JFileChooser: setApproveButtonMnemonic(char mnemonic)
- 19 JFileChooser: setApproveButtonText(String approveButtonText)
- 20 JFileChooser: setApproveButtonToolTipText(String toolTipText)
- 21 JFileChooser: setControlButtonsAreShown(boolean b)
- 22 JFileChooser: setCurrentDirectory(File dir)
- 23 JFileChooser: setFileFilter(FileFilter filter)
- 24 JFileChooser: setFileHidingEnabled(boolean b)
- 25 JFileChooser: setFileSelectionMode(int mode)
- 26 JFileChooser: setFileView(FileView fileView)
- 27 JFileChooser: setMultiSelectionEnabled(boolean b)
- 28 JFileChooser: setSelectedFile(File file)
- 29 JFileChooser: showOpenDialog(Component parent)
JFileChooser: addActionListener(ActionListener l)
<source lang="java">
import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; public class MainClass {
public static void main(String[] a) { JFrame frame = new JFrame("JFileChooser Popup"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JFileChooser fileChooser = new JFileChooser("."); fileChooser.setControlButtonsAreShown(false); frame.add(fileChooser, BorderLayout.CENTER); ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent actionEvent) { JFileChooser theFileChooser = (JFileChooser) actionEvent.getSource(); String command = actionEvent.getActionCommand(); if (command.equals(JFileChooser.APPROVE_SELECTION)) { File selectedFile = theFileChooser.getSelectedFile(); System.out.println(selectedFile.getParent()); System.out.println(selectedFile.getName()); } else if (command.equals(JFileChooser.CANCEL_SELECTION)) { System.out.println(JFileChooser.CANCEL_SELECTION); } } }; fileChooser.addActionListener(actionListener); frame.pack(); frame.setVisible(true); }
}
</source>
JFileChooser: addChoosableFileFilter(FileFilter filter)
<source lang="java">
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.filechooser.FileFilter; public class MainClass extends JFrame implements ActionListener {
MainClass(String title) { super(title); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel p = new JPanel(); JButton jb = new JButton("Open ..."); jb.addActionListener(this); p.add(jb); jb = new JButton("Save ..."); jb.addActionListener(this); p.add(jb); getContentPane().add(p); setSize(200, 65); setVisible(true); } public void actionPerformed(ActionEvent e) { int retVal; JFileChooser fc = new JFileChooser(); if (e.getActionCommand().equals("Open ...")) { fc.addChoosableFileFilter(new TextFilter()); retVal = fc.showOpenDialog(this); } else retVal = fc.showSaveDialog(this); if (retVal == JFileChooser.APPROVE_OPTION) System.out.println(fc.getSelectedFile().getName()); } public static void main(String[] args) { new MainClass("FileChooser Demo"); }
} class TextFilter extends FileFilter {
public boolean accept(File f) { if (f.isDirectory()) return true; String s = f.getName(); int i = s.lastIndexOf("."); if (i > 0 && i < s.length() - 1) if (s.substring(i + 1).toLowerCase().equals("txt")) return true; return false; } public String getDescription() { return "Accepts txt files only."; }
}
</source>
JFileChooser: addPropertyChangeListener(PropertyChangeListener listener)
<source lang="java">
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import java.util.Arrays; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); chooser.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (JFileChooser.SELECTED_FILE_CHANGED_PROPERTY.equals(evt.getPropertyName())) { JFileChooser chooser = (JFileChooser) evt.getSource(); File oldFile = (File) evt.getOldValue(); File newFile = (File) evt.getNewValue(); System.out.println(oldFile); System.out.println(newFile); System.out.println(chooser.getSelectedFile()); } else if (JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(evt.getPropertyName())) { JFileChooser chooser = (JFileChooser) evt.getSource(); File[] oldFiles = (File[]) evt.getOldValue(); File[] newFiles = (File[]) evt.getNewValue(); Arrays.toString(oldFiles); Arrays.toString(newFiles); File[] files = chooser.getSelectedFiles(); Arrays.toString(files); } } }); chooser.setVisible(true); }
}
</source>
JFileChooser.APPROVE_OPTION
<source lang="java">
import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JLabel; public class MainClass {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); fileChooser.setAccessory(new LabelAccessory(fileChooser)); 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 LabelAccessory extends JLabel implements PropertyChangeListener {
public LabelAccessory(JFileChooser chooser) { chooser.addPropertyChangeListener(this); setPreferredSize(new Dimension(100, 100)); } public void propertyChange(PropertyChangeEvent changeEvent) { String changeName = changeEvent.getPropertyName(); if (changeName.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = (File) changeEvent.getNewValue(); if (file != null) { setText(file.getName()); } } }
}
</source>
JFileChooser.CANCEL_OPTION
<source lang="java">
import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JLabel; public class MainClass {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); fileChooser.setAccessory(new LabelAccessory(fileChooser)); 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 LabelAccessory extends JLabel implements PropertyChangeListener {
public LabelAccessory(JFileChooser chooser) { chooser.addPropertyChangeListener(this); setPreferredSize(new Dimension(100, 100)); } public void propertyChange(PropertyChangeEvent changeEvent) { String changeName = changeEvent.getPropertyName(); if (changeName.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = (File) changeEvent.getNewValue(); if (file != null) { setText(file.getName()); } } }
}
</source>
JFileChooser: createDialog(Component parent)
<source lang="java">
import java.awt.ruponent; import java.awt.HeadlessException; import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.AbstractAction; import javax.swing.JDialog; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) throws Exception { MyFileChooser chooser = new MyFileChooser(); chooser.setDialogType(JFileChooser.SAVE_DIALOG); final JDialog dialog = chooser.createDialog(null); chooser.addActionListener(new AbstractAction() { public void actionPerformed(ActionEvent evt) { JFileChooser chooser = (JFileChooser) evt.getSource(); if (JFileChooser.APPROVE_SELECTION.equals(evt.getActionCommand())) { dialog.setVisible(false); } else if (JFileChooser.CANCEL_SELECTION.equals(evt.getActionCommand())) { dialog.setVisible(false); } } }); dialog.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { dialog.setVisible(false); } }); dialog.setVisible(true); }
} class MyFileChooser extends JFileChooser {
public JDialog createDialog(Component parent) throws HeadlessException { return super.createDialog(parent); }
}
</source>
JFileChooser.DIRECTORIES_ONLY
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser fileChooser = new JFileChooser("."); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); }
}
</source>
JFileChooser.DIRECTORY_CHANGED_PROPERTY
<source lang="java">
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) throws Exception { final JFileChooser chooser = new JFileChooser(); chooser.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (JFileChooser.DIRECTORY_CHANGED_PROPERTY.equals(evt.getPropertyName())) { JFileChooser chooser = (JFileChooser) evt.getSource(); File oldDir = (File) evt.getOldValue(); File newDir = (File) evt.getNewValue(); File curDir = chooser.getCurrentDirectory(); } } }); }
}
</source>
JFileChooser.ERROR_OPTION
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); int result = chooser.showOpenDialog(null); switch (result) { case JFileChooser.APPROVE_OPTION: System.out.println("Approve (Open or Save) was clicked"); break; case JFileChooser.CANCEL_OPTION: System.out.println("Cancel or the close-dialog icon was clicked"); break; case JFileChooser.ERROR_OPTION: System.out.println("Error"); break; } }
}
</source>
JFileChooser: getCurrentDirectory()
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) throws Exception { JFileChooser chooser = new JFileChooser(); File f = new File(new File(".").getCanonicalPath()); chooser.setCurrentDirectory(f); chooser.setCurrentDirectory(null); chooser.showOpenDialog(null); File curDir = chooser.getCurrentDirectory(); }
}
</source>
JFileChooser: getFileSystemView()
<source lang="java">
import javax.swing.JFileChooser; import javax.swing.filechooser.FileSystemView; public class Main {
public static void main(String[] args) { JFileChooser chooser = new JFileChooser(); FileSystemView view = chooser.getFileSystemView(); System.out.println("The home directory is " + view.getHomeDirectory()); }
}
</source>
JFileChooser: getSelectedFile()
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); 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("canceled"); } }
}
</source>
JFileChooser: getTypeDescription(File f)
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); File file = new File("filename.txt"); String fileTypeName = chooser.getTypeDescription(file); }
}
</source>
JFileChooser: isFileHidingEnabled()
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); boolean hidingEnabled = chooser.isFileHidingEnabled(); chooser.setFileHidingEnabled(false); chooser.showOpenDialog(null); }
}
</source>
JFileChooser.SELECTED_FILE_CHANGED_PROPERTY
<source lang="java">
import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JLabel; public class MainClass {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); fileChooser.setAccessory(new LabelAccessory(fileChooser)); 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 LabelAccessory extends JLabel implements PropertyChangeListener {
public LabelAccessory(JFileChooser chooser) { chooser.addPropertyChangeListener(this); setPreferredSize(new Dimension(100, 100)); } public void propertyChange(PropertyChangeEvent changeEvent) { String changeName = changeEvent.getPropertyName(); if (changeName.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = (File) changeEvent.getNewValue(); if (file != null) { setText(file.getName()); } } }
}
</source>
JFileChooser.SELECTED_FILES_CHANGED_PROPERTY
<source lang="java">
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) throws Exception { JFileChooser chooser = new JFileChooser(); chooser.addPropertyChangeListener(new PropertyChangeListener() { public void propertyChange(PropertyChangeEvent evt) { if (JFileChooser.SELECTED_FILES_CHANGED_PROPERTY.equals(evt.getPropertyName())) { JFileChooser chooser = (JFileChooser) evt.getSource(); File[] oldFiles = (File[]) evt.getOldValue(); File[] newFiles = (File[]) evt.getNewValue(); // Get list of selected files File[] files = chooser.getSelectedFiles(); } } }); }
}
</source>
JFileChooser: setAccessory(JComponent newAccessory)
<source lang="java">
import java.awt.Dimension; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JLabel; public class MainClass {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); fileChooser.setAccessory(new LabelAccessory(fileChooser)); 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 LabelAccessory extends JLabel implements PropertyChangeListener {
public LabelAccessory(JFileChooser chooser) { chooser.addPropertyChangeListener(this); setPreferredSize(new Dimension(100, 100)); } public void propertyChange(PropertyChangeEvent changeEvent) { String changeName = changeEvent.getPropertyName(); if (changeName.equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY)) { File file = (File) changeEvent.getNewValue(); if (file != null) { setText(file.getName()); } } }
}
</source>
JFileChooser: setApproveButtonMnemonic(char mnemonic)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); // Set the text chooser.setApproveButtonText("New Approve Text"); // Set the mnemonic chooser.setApproveButtonMnemonic("a"); // Set the tool tip chooser.setApproveButtonToolTipText("New Approve Tool Tip"); chooser.showOpenDialog(null); }
}
</source>
JFileChooser: setApproveButtonText(String approveButtonText)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); // Set the text chooser.setApproveButtonText("New Approve Text"); // Set the mnemonic chooser.setApproveButtonMnemonic("a"); // Set the tool tip chooser.setApproveButtonToolTipText("New Approve Tool Tip"); chooser.showOpenDialog(null); }
}
</source>
JFileChooser: setApproveButtonToolTipText(String toolTipText)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); // Set the text chooser.setApproveButtonText("New Approve Text"); // Set the mnemonic chooser.setApproveButtonMnemonic("a"); // Set the tool tip chooser.setApproveButtonToolTipText("New Approve Tool Tip"); chooser.showOpenDialog(null); }
}
</source>
JFileChooser: setControlButtonsAreShown(boolean b)
<source lang="java">
import java.awt.BorderLayout; import java.awt.Font; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; public class Main {
public static void main(String args[]) { JFrame frame = new JFrame("JFileChooser Popup"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); final JLabel directoryLabel = new JLabel(" "); directoryLabel.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 36)); frame.add(directoryLabel, BorderLayout.NORTH); final JLabel filenameLabel = new JLabel(" "); filenameLabel.setFont(new Font("Serif", Font.BOLD | Font.ITALIC, 36)); frame.add(filenameLabel, BorderLayout.SOUTH); JFileChooser fileChooser = new JFileChooser("."); fileChooser.setControlButtonsAreShown(false); frame.add(fileChooser, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); }
}
</source>
JFileChooser: setCurrentDirectory(File dir)
<source lang="java">
import java.awt.Container; import java.awt.Frame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.filechooser.FileFilter; public class Main extends JFrame implements ActionListener {
public Main() { setTitle("ZipTest"); setSize(300, 400); JMenuBar mbar = new JMenuBar(); JMenu m = new JMenu("File"); openItem = new JMenuItem("Open"); openItem.addActionListener(this); m.add(openItem); exitItem = new JMenuItem("Exit"); exitItem.addActionListener(this); m.add(exitItem); mbar.add(m); Container contentPane = getContentPane(); contentPane.add(mbar, "North"); } public void actionPerformed(ActionEvent evt) { Object source = evt.getSource(); if (source == openItem) { JFileChooser chooser = new JFileChooser(); chooser.setCurrentDirectory(new File(".")); chooser.setFileFilter(new FileFilter() { public boolean accept(File f) { return f.getName().toLowerCase().endsWith(".zip") || f.isDirectory(); } public String getDescription() { return "ZIP Files"; } }); int r = chooser.showOpenDialog(this); if (r == JFileChooser.APPROVE_OPTION) { String zipname = chooser.getSelectedFile().getPath(); System.out.println(zipname); } } else if (source == exitItem) System.exit(0); } public static void main(String[] args) { Frame f = new Main(); f.setVisible(true); } private JMenuItem openItem; private JMenuItem exitItem;
}
</source>
JFileChooser: setFileFilter(FileFilter filter)
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; import javax.swing.filechooser.FileFilter; public class MainClass {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser("."); FileFilter filter1 = new ExtensionFileFilter("JPG and JPEG", new String[] { "JPG", "JPEG" }); fileChooser.setFileFilter(filter1); 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 ExtensionFileFilter extends FileFilter {
String description; String extensions[]; public ExtensionFileFilter(String description, String extension) { this(description, new String[] { extension }); } public ExtensionFileFilter(String description, String extensions[]) { if (description == null) { this.description = extensions[0]; } else { this.description = description; } this.extensions = (String[]) extensions.clone(); toLower(this.extensions); } private void toLower(String array[]) { for (int i = 0, n = array.length; i < n; i++) { array[i] = array[i].toLowerCase(); } } public String getDescription() { return description; } public boolean accept(File file) { if (file.isDirectory()) { return true; } else { String path = file.getAbsolutePath().toLowerCase(); for (int i = 0, n = extensions.length; i < n; i++) { String extension = extensions[i]; if ((path.endsWith(extension) && (path.charAt(path.length() - extension.length() - 1)) == ".")) { return true; } } } return false; }
}
</source>
JFileChooser: setFileHidingEnabled(boolean b)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); boolean hidingEnabled = chooser.isFileHidingEnabled(); chooser.setFileHidingEnabled(false); chooser.showOpenDialog(null); }
}
</source>
JFileChooser: setFileSelectionMode(int mode)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fileChooser.showOpenDialog(null); }
}
</source>
JFileChooser: setFileView(FileView fileView)
<source lang="java">
import java.awt.Color; import java.awt.ruponent; import java.awt.Graphics; import java.io.File; import javax.swing.Icon; import javax.swing.JFileChooser; import javax.swing.filechooser.FileView; public class MainClass {
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); }
}
</source>
JFileChooser: setMultiSelectionEnabled(boolean b)
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) { JFileChooser chooser = new JFileChooser(); chooser.setMultiSelectionEnabled(true); chooser.showOpenDialog(null); File[] files = chooser.getSelectedFiles(); }
}
</source>
JFileChooser: setSelectedFile(File file)
<source lang="java">
import java.io.File; import javax.swing.JFileChooser; public class Main {
public static void main(String[] argv) throws Exception{ JFileChooser chooser = new JFileChooser(); File f = new File(new File("filename.txt").getCanonicalPath()); chooser.setSelectedFile(f); chooser.showOpenDialog(null); File curFile = chooser.getSelectedFile(); }
}
</source>
JFileChooser: showOpenDialog(Component parent)
<source lang="java">
import javax.swing.JFileChooser; public class Main {
public static void main(String[] a) { JFileChooser fileChooser = new JFileChooser(); fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); fileChooser.showOpenDialog(null); }
}
</source>