FileView (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing.filechooser, class: FileView
Keywords: javax.swing.filechooser.FileView class

# Class FileView

java.lang.Object
javax.swing.filechooser.FileView

Direct Known Subclasses:
  `BasicFileChooserUI.BasicFileView`

public abstract class FileView extends Object
`FileView` defines an abstract class that can be implemented to provide the filechooser with UI information for a `File`. Each L&F `JFileChooserUI` object implements this class to pass back the correct icons and type descriptions specific to that L&F. For example, the Microsoft Windows L&F returns the generic Windows icons for directories and generic files. Additionally, you may want to provide your own `FileView` to `JFileChooser` to return different icons or additional information using `JFileChooser.setFileView(FileView)`.

`JFileChooser` first looks to see if there is a user defined `FileView`, if there is, it gets type information from there first. If `FileView` returns `null` for any method, `JFileChooser` then uses the L&F specific view to get the information. So, for example, if you provide a `FileView` class that returns an `Icon` for JPG files, and returns `null` icons for all other files, the UI's `FileView` will provide default icons for all other files.

For an example implementation of a simple file view, see `yourJDK/demo/jfc/FileChooserDemo/ExampleFileView.java`. For more information and examples see How to Use File Choosers, a section in The Java Tutorial.

See Also:
  - `JFileChooser`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `FileView()`
  Constructor for subclasses to call.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDescription(File f)`
  A human readable description of the file.
  `Icon`
  `getIcon(File f)`
  The icon that represents this file in the `JFileChooser`.
  `String`
  `getName(File f)`
  The name of the file.
  `String`
  `getTypeDescription(File f)`
  A human readable description of the type of the file.
  `Boolean`
  `isTraversable(File f)`
  Whether the directory is traversable or not.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### FileView

    protected FileView()
    Constructor for subclasses to call.

- ## Method Details

  - ### getName

    public String getName(File f)
    The name of the file. Normally this would be simply `f.getName()`.
    Parameters:
      `f` - a `File` object
    Returns:
      a `String` representing the name of the file

  - ### getDescription

    public String getDescription(File f)
    A human readable description of the file. For example, a file named jag.jpg might have a description that read: "A JPEG image file of James Gosling's face".
    Parameters:
      `f` - a `File` object
    Returns:
      a `String` containing a description of the file or `null` if it is not available.

  - ### getTypeDescription

    public String getTypeDescription(File f)
    A human readable description of the type of the file. For example, a `jpg` file might have a type description of: "A JPEG Compressed Image File"
    Parameters:
      `f` - a `File` object
    Returns:
      a `String` containing a description of the type of the file or `null` if it is not available .

  - ### getIcon

    public Icon getIcon(File f)
    The icon that represents this file in the `JFileChooser`.
    Parameters:
      `f` - a `File` object
    Returns:
      an `Icon` which represents the specified `File` or `null` if it is not available.

  - ### isTraversable

    public Boolean isTraversable(File f)
    Whether the directory is traversable or not. This might be useful, for example, if you want a directory to represent a compound document and don't want the user to descend into it.
    Parameters:
      `f` - a `File` object representing a directory
    Returns:
      `true` if the directory is traversable, `false` if it is not, and `null` if the file system should be checked.
    See Also:
      - `FileSystemView.isTraversable(File)`