javax.swing.plaf.basic

## Class BasicFileChooserUI

- java.lang.Object
- - javax.swing.plaf.ComponentUI
  - - javax.swing.plaf.FileChooserUI
    - - javax.swing.plaf.basic.BasicFileChooserUI

- Direct Known Subclasses:
    MetalFileChooserUI

      public class BasicFileChooserUI
      extends FileChooserUI

  Basic L&F implementation of a FileChooser.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `protected class` | `BasicFileChooserUI.AcceptAllFileFilter` |
    `protected class` | `BasicFileChooserUI.ApproveSelectionAction` | Responds to an Open or Save request
    `protected class` | `BasicFileChooserUI.BasicFileView` |
    `protected class` | `BasicFileChooserUI.CancelSelectionAction` | Responds to a cancel request.
    `protected class` | `BasicFileChooserUI.ChangeToParentDirectoryAction` |
    `protected class` | `BasicFileChooserUI.DoubleClickListener` |
    `protected class` | `BasicFileChooserUI.GoHomeAction` | Acts on the "home" key event or equivalent event.
    `protected class` | `BasicFileChooserUI.NewFolderAction` | Creates a new folder.
    `protected class` | `BasicFileChooserUI.SelectionListener` |
    `protected class` | `BasicFileChooserUI.UpdateAction` | Rescans the files in the current directory

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `cancelButtonMnemonic` |
    `protected String` | `cancelButtonText` |
    `protected String` | `cancelButtonToolTipText` |
    `protected Icon` | `computerIcon` |
    `protected Icon` | `detailsViewIcon` |
    `protected Icon` | `directoryIcon` |
    `protected int` | `directoryOpenButtonMnemonic` | The mnemonic keycode used for the approve button when a directory is selected and the current selection mode is FILES_ONLY.
    `protected String` | `directoryOpenButtonText` | The label text displayed on the approve button when a directory is selected and the current selection mode is FILES_ONLY.
    `protected String` | `directoryOpenButtonToolTipText` | The tooltip text displayed on the approve button when a directory is selected and the current selection mode is FILES_ONLY.
    `protected Icon` | `fileIcon` |
    `protected Icon` | `floppyDriveIcon` |
    `protected Icon` | `hardDriveIcon` |
    `protected int` | `helpButtonMnemonic` |
    `protected String` | `helpButtonText` |
    `protected String` | `helpButtonToolTipText` |
    `protected Icon` | `homeFolderIcon` |
    `protected Icon` | `listViewIcon` |
    `protected Icon` | `newFolderIcon` |
    `protected int` | `openButtonMnemonic` |
    `protected String` | `openButtonText` |
    `protected String` | `openButtonToolTipText` |
    `protected int` | `saveButtonMnemonic` |
    `protected String` | `saveButtonText` |
    `protected String` | `saveButtonToolTipText` |
    `protected int` | `updateButtonMnemonic` |
    `protected String` | `updateButtonText` |
    `protected String` | `updateButtonToolTipText` |
    `protected Icon` | `upFolderIcon` |
    `protected Icon` | `viewMenuIcon` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `BasicFileChooserUI(JFileChooser b)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `clearIconCache()` |
    `protected MouseListener` | `createDoubleClickListener(JFileChooser fc, JList list)` |
    `ListSelectionListener` | `createListSelectionListener(JFileChooser fc)` |
    `protected void` | `createModel()` |
    `PropertyChangeListener` | `createPropertyChangeListener(JFileChooser fc)` |
    `static ComponentUI` | `createUI(JComponent c)` | Creates a `BasicFileChooserUI` implementation for the specified component.
    `void` | `ensureFileIsVisible(JFileChooser fc, File f)` |
    `FileFilter` | `getAcceptAllFileFilter(JFileChooser fc)` | Returns the default accept all file filter
    `JPanel` | `getAccessoryPanel()` |
    `protected JButton` | `getApproveButton(JFileChooser fc)` |
    `int` | `getApproveButtonMnemonic(JFileChooser fc)` |
    `String` | `getApproveButtonText(JFileChooser fc)` |
    `String` | `getApproveButtonToolTipText(JFileChooser fc)` |
    `Action` | `getApproveSelectionAction()` |
    `Action` | `getCancelSelectionAction()` |
    `Action` | `getChangeToParentDirectoryAction()` |
    `JButton` | `getDefaultButton(JFileChooser fc)` | Returns default button for current `LookAndFeel`.
    `String` | `getDialogTitle(JFileChooser fc)` | Returns the title of this dialog
    `protected File` | `getDirectory()` | Property to remember the directory that is currently selected in the UI.
    `String` | `getDirectoryName()` |
    `JFileChooser` | `getFileChooser()` |
    `String` | `getFileName()` |
    `FileView` | `getFileView(JFileChooser fc)` |
    `Action` | `getGoHomeAction()` |
    `BasicDirectoryModel` | `getModel()` |
    `Action` | `getNewFolderAction()` |
    `Action` | `getUpdateAction()` |
    `void` | `installComponents(JFileChooser fc)` |
    `protected void` | `installDefaults(JFileChooser fc)` |
    `protected void` | `installIcons(JFileChooser fc)` |
    `protected void` | `installListeners(JFileChooser fc)` |
    `protected void` | `installStrings(JFileChooser fc)` |
    `void` | `installUI(JComponent c)` | Configures the specified component appropriately for the look and feel.
    `protected boolean` | `isDirectorySelected()` | Property to remember whether a directory is currently selected in the UI.
    `void` | `rescanCurrentDirectory(JFileChooser fc)` |
    `protected void` | `setDirectory(File f)` | Property to remember the directory that is currently selected in the UI.
    `void` | `setDirectoryName(String dirname)` |
    `protected void` | `setDirectorySelected(boolean b)` | Property to remember whether a directory is currently selected in the UI.
    `void` | `setFileName(String filename)` |
    `void` | `uninstallComponents(JFileChooser fc)` |
    `protected void` | `uninstallDefaults(JFileChooser fc)` |
    `protected void` | `uninstallIcons(JFileChooser fc)` |
    `protected void` | `uninstallListeners(JFileChooser fc)` |
    `protected void` | `uninstallStrings(JFileChooser fc)` |
    `void` | `uninstallUI(JComponent c)` | Reverses configuration which was done on the specified component during `installUI`.

    - ### Methods inherited from class javax.swing.plaf.ComponentUI

      `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, getMaximumSize, getMinimumSize, getPreferredSize, paint, update`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### directoryIcon

          protected Icon directoryIcon

    - #### fileIcon

          protected Icon fileIcon

    - #### computerIcon

          protected Icon computerIcon

    - #### hardDriveIcon

          protected Icon hardDriveIcon

    - #### floppyDriveIcon

          protected Icon floppyDriveIcon

    - #### newFolderIcon

          protected Icon newFolderIcon

    - #### upFolderIcon

          protected Icon upFolderIcon

    - #### homeFolderIcon

          protected Icon homeFolderIcon

    - #### listViewIcon

          protected Icon listViewIcon

    - #### detailsViewIcon

          protected Icon detailsViewIcon

    - #### viewMenuIcon

          protected Icon viewMenuIcon

    - #### saveButtonMnemonic

          protected int saveButtonMnemonic

    - #### openButtonMnemonic

          protected int openButtonMnemonic

    - #### cancelButtonMnemonic

          protected int cancelButtonMnemonic

    - #### updateButtonMnemonic

          protected int updateButtonMnemonic

    - #### helpButtonMnemonic

          protected int helpButtonMnemonic

    - #### directoryOpenButtonMnemonic

          protected int directoryOpenButtonMnemonic

      The mnemonic keycode used for the approve button when a directory is selected and the current selection mode is FILES_ONLY.
      Since:
        1.4

    - #### saveButtonText

          protected String saveButtonText

    - #### openButtonText

          protected String openButtonText

    - #### cancelButtonText

          protected String cancelButtonText

    - #### updateButtonText

          protected String updateButtonText

    - #### helpButtonText

          protected String helpButtonText

    - #### directoryOpenButtonText

          protected String directoryOpenButtonText

      The label text displayed on the approve button when a directory is selected and the current selection mode is FILES_ONLY.
      Since:
        1.4

    - #### saveButtonToolTipText

          protected String saveButtonToolTipText

    - #### openButtonToolTipText

          protected String openButtonToolTipText

    - #### cancelButtonToolTipText

          protected String cancelButtonToolTipText

    - #### updateButtonToolTipText

          protected String updateButtonToolTipText

    - #### helpButtonToolTipText

          protected String helpButtonToolTipText

    - #### directoryOpenButtonToolTipText

          protected String directoryOpenButtonToolTipText

      The tooltip text displayed on the approve button when a directory is selected and the current selection mode is FILES_ONLY.
      Since:
        1.4

  - ### Constructor Detail

    - #### BasicFileChooserUI

          public BasicFileChooserUI(JFileChooser b)

  - ### Method Detail

    - #### createUI

          public static ComponentUI createUI(JComponent c)

      Creates a `BasicFileChooserUI` implementation for the specified component. By default the `BasicLookAndFeel` class uses `createUI` methods of all basic UIs classes to instantiate UIs.
      Parameters:
        `c` - the `JFileChooser` which needs a UI
      Returns:
        the `BasicFileChooserUI` object
      Since:
        1.7
      See Also:
        `UIDefaults.getUI(JComponent)`

    - #### installUI

          public void installUI(JComponent c)

      Description copied from class: `ComponentUI`
      Configures the specified component appropriately for the look and feel. This method is invoked when the `ComponentUI` instance is being installed as the UI delegate on the specified component. This method should completely configure the component for the look and feel, including the following:
      1. Install default property values for color, fonts, borders, icons, opacity, etc. on the component. Whenever possible, property values initialized by the client program should not be overridden.
      2. Install a `LayoutManager` on the component if necessary.
      3. Create/add any required sub-components to the component.
      4. Create/install event listeners on the component.
      5. Create/install a `PropertyChangeListener` on the component in order to detect and respond to component property changes appropriately.
      6. Install keyboard UI (mnemonics, traversal, etc.) on the component.
      7. Initialize any appropriate instance data.
      Overrides:
        `installUI` in class `ComponentUI`
      Parameters:
        `c` - the component where this UI delegate is being installed
      See Also:
        `ComponentUI.uninstallUI(javax.swing.JComponent)`, `JComponent.setUI(javax.swing.plaf.ComponentUI)`, `JComponent.updateUI()`

    - #### uninstallUI

          public void uninstallUI(JComponent c)

      Description copied from class: `ComponentUI`
      Reverses configuration which was done on the specified component during `installUI`. This method is invoked when this `UIComponent` instance is being removed as the UI delegate for the specified component. This method should undo the configuration performed in `installUI`, being careful to leave the `JComponent` instance in a clean state (no extraneous listeners, look-and-feel-specific property objects, etc.). This should include the following:
      1. Remove any UI-set borders from the component.
      2. Remove any UI-set layout managers on the component.
      3. Remove any UI-added sub-components from the component.
      4. Remove any UI-added event/property listeners from the component.
      5. Remove any UI-installed keyboard UI from the component.
      6. Nullify any allocated instance data objects to allow for GC.
      Overrides:
        `uninstallUI` in class `ComponentUI`
      Parameters:
        `c` - the component from which this UI delegate is being removed; this argument is often ignored, but might be used if the UI object is stateless and shared by multiple components
      See Also:
        `ComponentUI.installUI(javax.swing.JComponent)`, `JComponent.updateUI()`

    - #### installComponents

          public void installComponents(JFileChooser fc)

    - #### uninstallComponents

          public void uninstallComponents(JFileChooser fc)

    - #### installListeners

          protected void installListeners(JFileChooser fc)

    - #### uninstallListeners

          protected void uninstallListeners(JFileChooser fc)

    - #### installDefaults

          protected void installDefaults(JFileChooser fc)

    - #### installIcons

          protected void installIcons(JFileChooser fc)

    - #### installStrings

          protected void installStrings(JFileChooser fc)

    - #### uninstallDefaults

          protected void uninstallDefaults(JFileChooser fc)

    - #### uninstallIcons

          protected void uninstallIcons(JFileChooser fc)

    - #### uninstallStrings

          protected void uninstallStrings(JFileChooser fc)

    - #### createModel

          protected void createModel()

    - #### getModel

          public BasicDirectoryModel getModel()

    - #### createPropertyChangeListener

          public PropertyChangeListener createPropertyChangeListener(JFileChooser fc)

    - #### getFileName

          public String getFileName()

    - #### getDirectoryName

          public String getDirectoryName()

    - #### setFileName

          public void setFileName(String filename)

    - #### setDirectoryName

          public void setDirectoryName(String dirname)

    - #### rescanCurrentDirectory

          public void rescanCurrentDirectory(JFileChooser fc)

      Specified by:
        `rescanCurrentDirectory` in class `FileChooserUI`

    - #### ensureFileIsVisible

          public void ensureFileIsVisible(JFileChooser fc,
                                          File f)

      Specified by:
        `ensureFileIsVisible` in class `FileChooserUI`

    - #### getFileChooser

          public JFileChooser getFileChooser()

    - #### getAccessoryPanel

          public JPanel getAccessoryPanel()

    - #### getApproveButton

          protected JButton getApproveButton(JFileChooser fc)

    - #### getDefaultButton

          public JButton getDefaultButton(JFileChooser fc)

      Description copied from class: `FileChooserUI`
      Returns default button for current `LookAndFeel`. `JFileChooser` will use this button as default button for dialog windows.
      Overrides:
        `getDefaultButton` in class `FileChooserUI`

    - #### getApproveButtonToolTipText

          public String getApproveButtonToolTipText(JFileChooser fc)

    - #### clearIconCache

          public void clearIconCache()

    - #### createDoubleClickListener

          protected MouseListener createDoubleClickListener(JFileChooser fc,
                                                            JList list)

    - #### createListSelectionListener

          public ListSelectionListener createListSelectionListener(JFileChooser fc)

    - #### isDirectorySelected

          protected boolean isDirectorySelected()

      Property to remember whether a directory is currently selected in the UI.
      Returns:
        `true` iff a directory is currently selected.
      Since:
        1.4

    - #### setDirectorySelected

          protected void setDirectorySelected(boolean b)

      Property to remember whether a directory is currently selected in the UI. This is normally called by the UI on a selection event.
      Parameters:
        `b` - iff a directory is currently selected.
      Since:
        1.4

    - #### getDirectory

          protected File getDirectory()

      Property to remember the directory that is currently selected in the UI.
      Returns:
        the value of the `directory` property
      Since:
        1.4
      See Also:
        `setDirectory(java.io.File)`

    - #### setDirectory

          protected void setDirectory(File f)

      Property to remember the directory that is currently selected in the UI. This is normally called by the UI on a selection event.
      Parameters:
        `f` - the `File` object representing the directory that is currently selected
      Since:
        1.4

    - #### getAcceptAllFileFilter

          public FileFilter getAcceptAllFileFilter(JFileChooser fc)

      Returns the default accept all file filter
      Specified by:
        `getAcceptAllFileFilter` in class `FileChooserUI`

    - #### getFileView

          public FileView getFileView(JFileChooser fc)

      Specified by:
        `getFileView` in class `FileChooserUI`

    - #### getDialogTitle

          public String getDialogTitle(JFileChooser fc)

      Returns the title of this dialog
      Specified by:
        `getDialogTitle` in class `FileChooserUI`

    - #### getApproveButtonMnemonic

          public int getApproveButtonMnemonic(JFileChooser fc)

    - #### getApproveButtonText

          public String getApproveButtonText(JFileChooser fc)

      Specified by:
        `getApproveButtonText` in class `FileChooserUI`

    - #### getNewFolderAction

          public Action getNewFolderAction()

    - #### getGoHomeAction

          public Action getGoHomeAction()

    - #### getChangeToParentDirectoryAction

          public Action getChangeToParentDirectoryAction()

    - #### getApproveSelectionAction

          public Action getApproveSelectionAction()

    - #### getCancelSelectionAction

          public Action getCancelSelectionAction()

    - #### getUpdateAction

          public Action getUpdateAction()

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.