# Class MetalFileChooserUI

java.lang.Object
javax.swing.plaf.ComponentUI
javax.swing.plaf.FileChooserUI
javax.swing.plaf.basic.BasicFileChooserUI
javax.swing.plaf.metal.MetalFileChooserUI

public class MetalFileChooserUI extends BasicFileChooserUI
Metal L&F implementation of a FileChooser.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `protected class`
  `MetalFileChooserUI.DirectoryComboBoxAction`
  Acts when DirectoryComboBox has changed the selected item.
  `protected class`
  `MetalFileChooserUI.DirectoryComboBoxModel`
  Data model for a type-face selection combo-box.
  `protected class`
  `MetalFileChooserUI.FileRenderer`
  Deprecated.
  As of JDK version 9.
  `protected class`
  `MetalFileChooserUI.FilterComboBoxModel`
  Data model for a type-face selection combo-box.
  `class`
  `MetalFileChooserUI.FilterComboBoxRenderer`
  Render different type sizes and styles.
  `protected class`
  `MetalFileChooserUI.SingleClickListener`
  Deprecated.
  As of JDK version 9.

  ### Nested classes/interfaces declared in class BasicFileChooserUI

  `BasicFileChooserUI.AcceptAllFileFilter, BasicFileChooserUI.ApproveSelectionAction, BasicFileChooserUI.BasicFileView, BasicFileChooserUI.CancelSelectionAction, BasicFileChooserUI.ChangeToParentDirectoryAction, BasicFileChooserUI.DoubleClickListener, BasicFileChooserUI.GoHomeAction, BasicFileChooserUI.NewFolderAction, BasicFileChooserUI.SelectionListener, BasicFileChooserUI.UpdateAction`

- ## Field Summary

  ### Fields declared in class BasicFileChooserUI

  `cancelButtonMnemonic, cancelButtonText, cancelButtonToolTipText, computerIcon, detailsViewIcon, directoryIcon, directoryOpenButtonMnemonic, directoryOpenButtonText, directoryOpenButtonToolTipText, fileIcon, floppyDriveIcon, hardDriveIcon, helpButtonMnemonic, helpButtonText, helpButtonToolTipText, homeFolderIcon, listViewIcon, newFolderIcon, openButtonMnemonic, openButtonText, openButtonToolTipText, saveButtonMnemonic, saveButtonText, saveButtonToolTipText, updateButtonMnemonic, updateButtonText, updateButtonToolTipText, upFolderIcon, viewMenuIcon`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MetalFileChooserUI(JFileChooser filechooser)`
  Constructs a new instance of `MetalFileChooserUI`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `addControlButtons()`
  Adds control buttons to bottom panel.
  `protected ActionMap`
  `createActionMap()`
  Constructs an instance of `ActionMap`.
  `protected JPanel`
  `createDetailsView(JFileChooser fc)`
  Constructs a details view.
  `protected MetalFileChooserUI.DirectoryComboBoxModel`
  `createDirectoryComboBoxModel(JFileChooser fc)`
  Constructs a new instance of `DataModel` for `DirectoryComboBox`.
  `protected MetalFileChooserUI.FilterComboBoxModel`
  `createFilterComboBoxModel()`
  Constructs a `DataModel` for types `ComboBox`.
  `protected MetalFileChooserUI.FilterComboBoxRenderer`
  `createFilterComboBoxRenderer()`
  Constructs a `Renderer` for types `ComboBox`.
  `protected JPanel`
  `createList(JFileChooser fc)`
  Constructs a details view.
  `ListSelectionListener`
  `createListSelectionListener(JFileChooser fc)`
  Creates a selection listener for the list of files and directories.
  `static ComponentUI`
  `createUI(JComponent c)`
  Constructs a new instance of `MetalFileChooserUI`.
  `protected ActionMap`
  `getActionMap()`
  Returns an instance of `ActionMap`.
  `protected JPanel`
  `getBottomPanel()`
  Returns the bottom panel.
  `protected JPanel`
  `getButtonPanel()`
  Returns the button panel.
  `String`
  `getDirectoryName()`
  Returns the directory name.
  `Dimension`
  `getMaximumSize(JComponent c)`
  Returns the maximum size of the `JFileChooser`.
  `Dimension`
  `getMinimumSize(JComponent c)`
  Returns the minimum size of the `JFileChooser`.
  `Dimension`
  `getPreferredSize(JComponent c)`
  Returns the preferred size of the specified `JFileChooser`.
  `protected void`
  `removeControlButtons()`
  Removes control buttons from bottom panel.
  `void`
  `setDirectoryName(String dirname)`
  Sets the directory name.
  `protected void`
  `setDirectorySelected(boolean directorySelected)`
  Property to remember whether a directory is currently selected in the UI.
  `void`
  `valueChanged(ListSelectionEvent e)`
  Invokes when `ListSelectionEvent` occurs.

  ### Methods declared in class BasicFileChooserUI

  `clearIconCache, createDoubleClickListener, createModel, createPropertyChangeListener, ensureFileIsVisible, getAcceptAllFileFilter, getAccessoryPanel, getApproveButton, getApproveButtonMnemonic, getApproveButtonText, getApproveButtonToolTipText, getApproveSelectionAction, getCancelSelectionAction, getChangeToParentDirectoryAction, getDialogTitle, getDirectory, getFileChooser, getFileName, getFileView, getGoHomeAction, getModel, getNewFolderAction, getUpdateAction, installComponents, installDefaults, installIcons, installListeners, installStrings, installUI, isDirectorySelected, rescanCurrentDirectory, setDirectory, setFileName, uninstallComponents, uninstallDefaults, uninstallIcons, uninstallListeners, uninstallStrings, uninstallUI`

  ### Methods declared in class FileChooserUI

  `getDefaultButton`

  ### Methods declared in class ComponentUI

  `contains, getAccessibleChild, getAccessibleChildrenCount, getBaseline, getBaselineResizeBehavior, paint, update`

  ### Methods declared in class Object

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

- ## Constructor Details

  - ### MetalFileChooserUI

    public MetalFileChooserUI(JFileChooser filechooser)
    Constructs a new instance of `MetalFileChooserUI`.
    Parameters:
      `filechooser` - a `JFileChooser`

- ## Method Details

  - ### createUI

    public static ComponentUI createUI(JComponent c)
    Constructs a new instance of `MetalFileChooserUI`.
    Parameters:
      `c` - a component
    Returns:
      a new instance of `MetalFileChooserUI`

  - ### getButtonPanel

    protected JPanel getButtonPanel()
    Returns the button panel.
    Returns:
      the button panel

  - ### getBottomPanel

    protected JPanel getBottomPanel()
    Returns the bottom panel.
    Returns:
      the bottom panel

  - ### getActionMap

    protected ActionMap getActionMap()
    Returns an instance of `ActionMap`.
    Returns:
      an instance of `ActionMap`

  - ### createActionMap

    protected ActionMap createActionMap()
    Constructs an instance of `ActionMap`.
    Returns:
      an instance of `ActionMap`

  - ### createList

    protected JPanel createList(JFileChooser fc)
    Constructs a details view.
    Parameters:
      `fc` - a `JFileChooser`
    Returns:
      the list

  - ### createDetailsView

    protected JPanel createDetailsView(JFileChooser fc)
    Constructs a details view.
    Parameters:
      `fc` - a `JFileChooser`
    Returns:
      the details view

  - ### createListSelectionListener

    public ListSelectionListener createListSelectionListener(JFileChooser fc)
    Creates a selection listener for the list of files and directories.
    Overrides:
      `createListSelectionListener` in class `BasicFileChooserUI`
    Parameters:
      `fc` - a `JFileChooser`
    Returns:
      a `ListSelectionListener`

  - ### getPreferredSize

    public Dimension getPreferredSize(JComponent c)
    Returns the preferred size of the specified `JFileChooser`. The preferred size is at least as large, in both height and width, as the preferred size recommended by the file chooser's layout manager.
    Overrides:
      `getPreferredSize` in class `ComponentUI`
    Parameters:
      `c` - a `JFileChooser`
    Returns:
      a `Dimension` specifying the preferred width and height of the file chooser
    See Also:
      - `JComponent.getPreferredSize()`
      - `LayoutManager.preferredLayoutSize(Container)`

  - ### getMinimumSize

    public Dimension getMinimumSize(JComponent c)
    Returns the minimum size of the `JFileChooser`.
    Overrides:
      `getMinimumSize` in class `ComponentUI`
    Parameters:
      `c` - a `JFileChooser`
    Returns:
      a `Dimension` specifying the minimum width and height of the file chooser
    See Also:
      - `JComponent.getMinimumSize()`
      - `LayoutManager.minimumLayoutSize(Container)`
      - `ComponentUI.getPreferredSize(JComponent)`

  - ### getMaximumSize

    public Dimension getMaximumSize(JComponent c)
    Returns the maximum size of the `JFileChooser`.
    Overrides:
      `getMaximumSize` in class `ComponentUI`
    Parameters:
      `c` - a `JFileChooser`
    Returns:
      a `Dimension` specifying the maximum width and height of the file chooser
    See Also:
      - `JComponent.getMaximumSize()`
      - `LayoutManager2.maximumLayoutSize(Container)`

  - ### removeControlButtons

    protected void removeControlButtons()
    Removes control buttons from bottom panel.

  - ### addControlButtons

    protected void addControlButtons()
    Adds control buttons to bottom panel.

  - ### setDirectorySelected

    protected void setDirectorySelected(boolean directorySelected)
    Property to remember whether a directory is currently selected in the UI. This is normally called by the UI on a selection event.
    Overrides:
      `setDirectorySelected` in class `BasicFileChooserUI`
    Parameters:
      `directorySelected` - if a directory is currently selected.
    Since:
      1.4

  - ### getDirectoryName

    public String getDirectoryName()
    Returns the directory name.
    Overrides:
      `getDirectoryName` in class `BasicFileChooserUI`
    Returns:
      the directory name

  - ### setDirectoryName

    public void setDirectoryName(String dirname)
    Sets the directory name.
    Overrides:
      `setDirectoryName` in class `BasicFileChooserUI`
    Parameters:
      `dirname` - the directory name

  - ### createDirectoryComboBoxModel

    protected MetalFileChooserUI.DirectoryComboBoxModel createDirectoryComboBoxModel(JFileChooser fc)
    Constructs a new instance of `DataModel` for `DirectoryComboBox`.
    Parameters:
      `fc` - a `JFileChooser`
    Returns:
      a new instance of `DataModel` for `DirectoryComboBox`

  - ### createFilterComboBoxRenderer

    protected MetalFileChooserUI.FilterComboBoxRenderer createFilterComboBoxRenderer()
    Constructs a `Renderer` for types `ComboBox`.
    Returns:
      a `Renderer` for types `ComboBox`

  - ### createFilterComboBoxModel

    protected MetalFileChooserUI.FilterComboBoxModel createFilterComboBoxModel()
    Constructs a `DataModel` for types `ComboBox`.
    Returns:
      a `DataModel` for types `ComboBox`

  - ### valueChanged

    public void valueChanged(ListSelectionEvent e)
    Invokes when `ListSelectionEvent` occurs.
    Parameters:
      `e` - an instance of `ListSelectionEvent`