public class FolderChooser
extends javax.swing.JFileChooser
FolderChooser provides a simple mechanism for the user to choose a folder.
In addition to supporting the basic folder choosing function, it also supports create new folder, delete an existing
folder. Another useful feature is recent list. It allows you to set a list of recent selected folders so that user
can choose them directly instead of navigating to it in the file system tree.
The following code pops up a folder chooser for user to choose a folder.
FolderChooser chooser = new FolderChooser();
int returnVal = chooser.showOpenDialog(parent);
if(returnVal == FolderChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}
javax.swing.JFileChooser.AccessibleJFileChooserjavax.swing.JComponent.AccessibleJComponent| Modifier and Type | Field and Description |
|---|---|
static int |
BUTTON_ALL |
static int |
BUTTON_DELETE |
static int |
BUTTON_DESKTOP |
static int |
BUTTON_MY_DOCUMENTS |
static int |
BUTTON_NEW |
static int |
BUTTON_REFRESH |
static java.lang.String |
PROPERTY_AVAILABLE_BUTTONS
Property for
_availableButtons. |
static java.lang.String |
PROPERTY_NAVIGATION_FIELD_VISIBLE
Bound property for
_navigationFieldVisible. |
static java.lang.String |
PROPERTY_RECENTLIST |
static java.lang.String |
PROPERTY_RECENTLIST_VISIBLE |
ACCEPT_ALL_FILE_FILTER_USED_CHANGED_PROPERTY, accessibleContext, ACCESSORY_CHANGED_PROPERTY, APPROVE_BUTTON_MNEMONIC_CHANGED_PROPERTY, APPROVE_BUTTON_TEXT_CHANGED_PROPERTY, APPROVE_BUTTON_TOOL_TIP_TEXT_CHANGED_PROPERTY, APPROVE_OPTION, APPROVE_SELECTION, CANCEL_OPTION, CANCEL_SELECTION, CHOOSABLE_FILE_FILTER_CHANGED_PROPERTY, CONTROL_BUTTONS_ARE_SHOWN_CHANGED_PROPERTY, CUSTOM_DIALOG, DIALOG_TITLE_CHANGED_PROPERTY, DIALOG_TYPE_CHANGED_PROPERTY, DIRECTORIES_ONLY, DIRECTORY_CHANGED_PROPERTY, ERROR_OPTION, FILE_FILTER_CHANGED_PROPERTY, FILE_HIDING_CHANGED_PROPERTY, FILE_SELECTION_MODE_CHANGED_PROPERTY, FILE_SYSTEM_VIEW_CHANGED_PROPERTY, FILE_VIEW_CHANGED_PROPERTY, FILES_AND_DIRECTORIES, FILES_ONLY, MULTI_SELECTION_ENABLED_CHANGED_PROPERTY, OPEN_DIALOG, SAVE_DIALOG, SELECTED_FILE_CHANGED_PROPERTY, SELECTED_FILES_CHANGED_PROPERTYlistenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW| Constructor and Description |
|---|
FolderChooser() |
FolderChooser(java.io.File currentDirectory) |
FolderChooser(java.io.File currentDirectory,
javax.swing.filechooser.FileSystemView fsv) |
FolderChooser(javax.swing.filechooser.FileSystemView fsv) |
FolderChooser(java.lang.String currentDirectoryPath) |
FolderChooser(java.lang.String currentDirectoryPath,
javax.swing.filechooser.FileSystemView fsv) |
| Modifier and Type | Method and Description |
|---|---|
int |
getAvailableButtons()
Get the visibilities of each buttons on the title bar of dockable frame.
|
java.util.Comparator<java.io.File> |
getFileComparator()
Gets the comparator that will be used to compare the folders displayed in the FolderChooser.
|
java.util.List<java.lang.String> |
getRecentList()
Gets recent selected folder list.
|
java.io.File |
getSelectedFolder()
Returns the selected folder.
|
java.lang.String |
getUIClassID()
Returns a string that specifies the name of the L&F class that renders this component.
|
boolean |
isNavigationFieldVisible()
Determines whether the navigation text field is visible.
|
boolean |
isRecentListVisible()
Get the visibility of the recent list combobox.
|
void |
setAvailableButtons(int availableButtons)
Set the visibilities of each buttons on the title bar of dockable frame.
|
void |
setFileComparator(java.util.Comparator<java.io.File> fileComparator)
Sets the comparator that will be used to compare the folders displayed in the FolderChooser.
|
void |
setFileFilter(javax.swing.filechooser.FileFilter filter) |
void |
setNavigationFieldVisible(boolean navigationFieldVisible)
Sets the navigation text fields visibility.
|
void |
setRecentList(java.util.List<java.lang.String> recentList)
Sets the recent folder list.
|
void |
setRecentListVisible(boolean recentListVisible)
Set the visibility of the recent list combobox.
|
void |
setSelectedFolder(java.io.File selectedFolder)
Sets the selected folder.
|
void |
updateUI()
Resets the UI property to a value from the current look and feel.
|
accept, addActionListener, addChoosableFileFilter, approveSelection, cancelSelection, changeToParentDirectory, createDialog, ensureFileIsVisible, fireActionPerformed, getAcceptAllFileFilter, getAccessibleContext, getAccessory, getActionListeners, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getChoosableFileFilters, getControlButtonsAreShown, getCurrentDirectory, getDescription, getDialogTitle, getDialogType, getDragEnabled, getFileFilter, getFileSelectionMode, getFileSystemView, getFileView, getIcon, getName, getSelectedFile, getSelectedFiles, getTypeDescription, getUI, isAcceptAllFileFilterUsed, isDirectorySelectionEnabled, isFileHidingEnabled, isFileSelectionEnabled, isMultiSelectionEnabled, isTraversable, paramString, removeActionListener, removeChoosableFileFilter, rescanCurrentDirectory, resetChoosableFileFilters, setAcceptAllFileFilterUsed, setAccessory, setApproveButtonMnemonic, setApproveButtonMnemonic, setApproveButtonText, setApproveButtonToolTipText, setControlButtonsAreShown, setCurrentDirectory, setDialogTitle, setDialogType, setDragEnabled, setFileHidingEnabled, setFileSelectionMode, setFileSystemView, setFileView, setMultiSelectionEnabled, setSelectedFile, setSelectedFiles, setup, showDialog, showOpenDialog, showSaveDialogaddAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, updateadd, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTreeaction, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCyclepublic static final java.lang.String PROPERTY_RECENTLIST
public static final java.lang.String PROPERTY_RECENTLIST_VISIBLE
public static final int BUTTON_ALL
public static final int BUTTON_DELETE
public static final int BUTTON_NEW
public static final int BUTTON_REFRESH
public static final int BUTTON_DESKTOP
public static final int BUTTON_MY_DOCUMENTS
public static final java.lang.String PROPERTY_AVAILABLE_BUTTONS
_availableButtons.setAvailableButtons(int),
Constant Field Valuespublic static final java.lang.String PROPERTY_NAVIGATION_FIELD_VISIBLE
_navigationFieldVisible.public FolderChooser()
public FolderChooser(java.lang.String currentDirectoryPath)
public FolderChooser(java.io.File currentDirectory)
public FolderChooser(javax.swing.filechooser.FileSystemView fsv)
public FolderChooser(java.io.File currentDirectory,
javax.swing.filechooser.FileSystemView fsv)
public FolderChooser(java.lang.String currentDirectoryPath,
javax.swing.filechooser.FileSystemView fsv)
public java.util.List<java.lang.String> getRecentList()
File.public void setRecentList(java.util.List<java.lang.String> recentList)
File. Property change event on PROPERTY_RECENTLIST will be fired when recent folder list is changed.recentList - the recent folder list.public void updateUI()
updateUI in class javax.swing.JFileChooserJComponent.updateUI()public java.lang.String getUIClassID()
getUIClassID in class javax.swing.JFileChooserJComponent.getUIClassID(),
UIDefaults.getUI(javax.swing.JComponent)public java.io.File getSelectedFolder()
setSelectedFolder or by a
user action, such as selecting the folder from a 'folder tree' in the UI.setSelectedFolder(java.io.File)public void setSelectedFolder(java.io.File selectedFolder)
Property change event
JFileChooser.SELECTED_FILE_CHANGED_PROPERTY will
be fired when a new folder is selected.selectedFolder - the selected foldergetSelectedFolder()public void setNavigationFieldVisible(boolean navigationFieldVisible)
navigationFieldVisible - if true, the navigation text field is displayed; otherwise it is hidden.public boolean isNavigationFieldVisible()
public int getAvailableButtons()
public void setAvailableButtons(int availableButtons)
availableButtons - the visibilities of each buttons. It's a bit wise OR of values specified at BUTTON_XXX.public boolean isRecentListVisible()
public void setRecentListVisible(boolean recentListVisible)
recentListVisible - the visibility of the comboboxpublic void setFileFilter(javax.swing.filechooser.FileFilter filter)
setFileFilter in class javax.swing.JFileChooserpublic java.util.Comparator<java.io.File> getFileComparator()
public void setFileComparator(java.util.Comparator<java.io.File> fileComparator)
AlphanumFileComparator
to sort the folder alphanum-ly.fileComparator - a new Comparator.