# Package `com.install4j.api.screens`

This package contains the interfaces and abstract base classes for screens.

See the [API overview](../../api.md) for general remarks on
how to use the install4j API.

The [`Screen`](Screen.md) interface is a base interface that contains common methods for installer and uninstaller screens.
The concrete interfaces are [`InstallerScreen`](InstallerScreen.md) and [`UninstallerScreen`](UninstallerScreen.md).

When you develop your own screens, it is recommended that you extend one of the abstract base classes in this package
rather than implement the interfaces themselves.

## Types

| Type | Kind | Description |
|---|---|---|
| [AbstractInstallerOrUninstallerScreen](AbstractInstallerOrUninstallerScreen.md) | class | Abstract base class for screens that can be used in the installer or uninstaller. |
| [AbstractInstallerScreen](AbstractInstallerScreen.md) | class | Abstract base class for installer screens. |
| [AbstractUninstallerScreen](AbstractUninstallerScreen.md) | class | Abstract base class for uninstaller screens. |
| [Console](Console.md) | interface | A `Console` object allows you to display information to the user and request input when the installer or uninstaller is running in console mode. |
| [FormPanelContainer](FormPanelContainer.md) | interface | Any screen can have a form panel, just like the "Additional confirmations" screen or the "Configurable form" screen. |
| [InstallerScreen](InstallerScreen.md) | interface | All installer screens must implement this interface. |
| [MessageStatus](MessageStatus.md) | enum | Status of a console message, used by [`Console.println`](Console.md#println-object-messagestatus) to color the output in consoles that support styling. |
| [Screen](Screen.md) | interface | The base interface for all screens. |
| [UninstallerScreen](UninstallerScreen.md) | interface | All uninstaller screens must implement this interface. |

