All Classes and Interfaces
Class
Description
Provides a reusable and consistent AboutDialog that can be used in any application.
Populate an instance of this class and then hand it to AboutDialog or AboutPanel to very quickly
and easily create an "about this app" type of display for the user.
Used to determine how to display the application logo image on the AboutPanel.
A re-usable JPanel that can display information about a given application.
A generic abstract base class for property fields, to be used with PropertiesManager.
Represents options for how actions are displayed in an ActionPanel.
A custom panel that can show groups of related actions, either as
clickable JLabels or as JButtons.
To show off the new ActionPanel component.
An abstract base class for the various Options classes used by ActionPanel.
A PropertiesDialog implementation that uses an ActionPanel on the left to show the categories and subcategories,
and a CardLayout on the right to show the corresponding FormPanel for the selected category/subcategory.
A demo panel for showing off some "advanced", or less-commonly-used, FormField implementations.
Useful for FormPanel alignment, to decide how to lay out controls within a FormPanel.
Animates a text display, such that a given text string will be slowly "printed" out character
by character with configurable styling and with a configurable speed.
Helper class to store cursor position
Controls the total duration of an animation.
This demo panel shows off some of the fun "panel effects" that are
available in swing-extras as of the 2.7 release:
Panel fade - animate a "fade in" and "fade out" effect.
Panel blur - blur the contents of a panel.
Falling snow - animate falling snowflakes over a panel.
A demo panel to show off the ImageScroller class.
Controls the speed of animation frames, in terms of the delay between frames.
Provides a generic starting point for application extensions.
Allows an extension to provide some basic metadata about itself.
This class encapsulates a PropertiesManager and an ExtensionManager together into
one handy utility that client projects can use more easily than the old approach
of having the client projects maintain these things separately.
Provides a way to test out the AudioUtils, and more specifically, the AudioWaveformPanel.
Provides a way to listen for events on an AudioWaveformPanel.
A utility class that can be used to interact with audio files.
Presents a JPanel that encapsulates an audio clip, and can visually present a graphical
waveform of that clip, along with controls for playback and editing.
This panel queries a remote UpdateSource for a list of compatible extensions
with this application, then allows them to be downloaded, installed, or updated.
Builds a FormPanel that contains examples of "basic" FormFields.
A custom LayerUI that can apply a blur effect to a JPanel
and display an optional text message over it.
Blur intensity presets controlling the blur kernel size.
Represents a property that can either be on or off.
Encapsulates all border-related options for an ActionPanel.
Represents a FormField that can contain one or more buttons with configurable actions.
Wraps a ButtonField, and allows you to add buttons to a FormPanel dynamically.
An action that flips to a specific card in a CardLayout when triggered.
A FormField to wrap a JCheckBox.
Deprecated, for removal: This API element is subject to removal in a future version.
This class is deprecated and will be removed in a future release.
Similar to PanelField, except this class gives you an "expand/contract" icon that
allows the panel contents to be displayed or hidden.
This property wraps an empty CollapsiblePanelField and allows you to add
subfields dynamically to it when the property's FormField is created.
A FormField implementation for selecting a solid color.
A class that encapsulates all color-related options for ActionPanel.
Represents a property that can either be a solid colour, a gradient, or both.
For any class that offers the ability to select either a solid color, or a color gradient,
or either option.
Provides a few built-in color themes that you can use to quickly change the look of your ActionPanel.
A FormField wrapping a JComboBox.
Represents a single-select chooser field that allows selection from a list of items.
A demo panel to show a custom FormField implementation - FontField.
A customized JDesktopPane that allows setting a customized background
instead of the default one provided by Java.
Provides a way to choose where the logo image should be displayed, if at all.
Represents a property that can store some floating point value.
A built-in demo application which shows off the features and components
contained in this library.
Entry point for the DemoApp.
A demo panel for the CustomizableDesktopPane, showing off color gradient backgrounds
and optional placement of a logo image on the desktop background.
Represents a field that contains a directory name.
A component that renders directories in the file system as a navigable tree view.
An adapter class for DirTreeListener with empty method implementations.
A demo panel for the DirTree component, to show off some of its capabilities.
Provides a way to listen for events from a DirTree instance.
Represents a single node (directory or file) within our DirTree.
Deprecated, for removal: This API element is subject to removal in a future version.
This class hasn't been used in ages, and LookAndFeelManager makes it unnecessary.
Represents a dynamic right click menu for DirTree.
An empty implementation of DownloadListener that you can extend if you only care
about implementing one or two methods instead of all of them.
Used internally when retrieving a remote extension to store all associated
files together into one object: the jar file, the optional signature file,
and the optional list of screenshots.
Can be used with DownloadManager to listen for progress, completion, or error updates
from downloads in progress.
Manages file downloads via http and reports on their progress, completion status, or error status.
Manages a single download with progress notifications - you generally shouldn't need to interact
with this class directly; instances of this class are created and managed automatically
by the DownloadManager.
Extends the AbstractAction class to provide convenient wrappers around setting
the name, icon, short description, and accelerator.
Represents a multi-choice property, very similar to a ComboProperty, except that the
options come from a supplied enum instead of a List of String values.
Encapsulates all expand/collapse related options for an ActionPanel,
including animation options.
Displays details about an extension using a supplied AppExtensionInfo instance.
A generic action that can be hooked onto any hyperlinked LabelField to open
the given url in the user's default browser.
A SimpleProgressWorker implementation that can download the given Extension and
return it as a DownloadedExtension instance if the download succeeds.
Shows a list of StartupErrors reported by ExtensionManager.
Provides a mechanism for scanning for and loading instances of AppExtension
for any given application.
Tracks any jar file that failed to load when ExtensionManager started up.
Provides a standardized way of viewing and enabling extensions across applications.
A demo panel to show off ONLY SOME of what ExtensionManager can do.
To be used in ExtensionManagerDialog - this class represents the title panel
for an Extension, showing the Extension's title, along with optional
controls for enabling/disabling, or installing/uninstalling/updating.
This is a LayerUI implementation that can be used to "fade" a JPanel
in and out by overlaying a colored translucent layer that animates
its opacity.
Provides an interface for performing validation on some type of FormField.
Extends the Properties class to provide for saving and loading of properties to and from
a flat file on disk.
A FormField for choosing a single directory or file.
An example accessory component that can be supplied to the setAccessory method.
Currently supported selection modes for this field.
A validator for use with FileField to ensure that the selected File
is in a location that can be written.
A FieldValidator that ensures that the chosen Directory can be read.
Similar to NonBlankFieldValidator for TextFields, this FieldValidator implementation
insists that a FileField cannot contain a blank value.
A FieldValidator that ensures that the chosen File can be written.
A FieldValidator that ensures that the chosen File or Directory exists.
The opposite of FileMustExistValidator, this one ensures that the selected file or directory
does not already exist (such as for a save dialog).
A simple Comparator implementation that compares File objects by comparing their
absolute paths.
Deprecated.
Use FileNameComparator
Represents a property field to allow selection of a file.
A simple interface to be notified of progress during file searches.
Provides a number of handy static utility methods for working with files and directories.
Represents a dialog that can be shown to the user to allow
selection of a font with style properties and optional
foreground/background color selection.
A FormField implementation that provides the ability to select a Font, with
optional abilities to select font size, font color, and font background color.
Represents a property field that allows storing a Font,
along with associated style and optional color attributes.
Builds a FormPanel that gives some examples of attaching a custom Action
to FormFields to do certain things when their value changes.
FormField is an abstract base class which allows for the creation of a form field that
wraps one or more Java Swing UI components.
Can be used with AbstractProperty and its implementing classes to listen for FormField generation.
This demo panel shows how to add helpful informational messages to FormFields.
FormPanel wraps a collection of FormFields and manages the following functions:
Layout management - you don't need to write manual GridBagLayout code
to use a FormPanel.
Builds a very simple FormPanel with some introductory text.
Some FormFields support custom cell renderers, which can allow you to highly customize
those fields - this demo panel shows an example of this in action.
Builds a FormPanel that shows how to add custom FieldValidators to make
form validation very easy to implement.
Combines a JColorChooser with a GradientConfigDialog to allow you to select
either a solid color or a gradient.
Contains the available types of gradients.
Contains some static utility methods for dealing with drawing gradients into images.
Can be used to listen for when an ActionGroup is removed from an ActionPanel.
Can be used to listen for when an ActionGroup is renamed within an ActionPanel.
Can be used to listen for when the items in an ActionGroup are reordered.
A simple wrapper class to simplify hashing functionality a little.
The HtmlLabelField can be used to convert part of a label into a hyperlink,
or which can be used to embed multiple separate hyperlinks within the same label.
Represents an html label, which can have multiple hyperlinks with custom actions.
Utility class for hyperlink launching in JREs that support it.
If the current JRE supports browsing, this action will open the given URI
in the user's default browser.
Smoothly animates an image from a source location to a destination location, with optional
acceleration and deceleration parameters on either end of the image movement.
A FormField implementation that allows the user to select one or more images, and display
them in a scrollable form field.
A scrollable panel that can show a list of images, each represented by a thumbnail
and an optional label to describe the image.
A custom JPanel extension that can display an image in configurable ways, with optional
handling of mouse events to allow zooming and scrolling.
Represents configuration options for ImagePanel.
Provides a FormField implementation for viewing/editing config options
for ImagePanels.
Displays an oversized image and slowly scrolls it either horizontally back-and-forth (for landscape
images) or vertically up-and-down (for portrait images).
Determines the extent to which we slow down as we approach a scroll limit, and also
how quickly we speed up as we move away from a scroll limit.
Determines pixels per frame of animation movement.
Contains utility method for drawing stylized text onto a BufferedImage.
A quick demo panel to show off the capabilities of ImageTextUtil.
Contains generic methods for dealing with images and image data.
A FileFilter implementation that can be used with file choosers to limit the
selection to acceptable image files.
ImageUtil is a utility class that offers a lot of handy functionality around loading, saving, and
manipulating images.
This panel shows a list of all installed extensions, and allows the user to enable/disable them,
or uninstall them if desired.
Used internally to represent an extension, either installed or uninstalled, either enabled or disabled.
Represents a property that can store some integer value.
Builds a very simple FormPanel with some introductory text.
A very simple interface that allows convenient use of lambda expressions for key actions.
A custom FormField implementation that allows editing of a single
KeyStroke assignment.
This class allows very easy registration of keyboard shortcuts for a given Window.
This demo panel shows off the KeyStrokeManager class,
which makes it easy to register and manage keyboard shortcut
handlers for any window.
A property implementation for storing KeyStroke values.
Represents a form field that just presents a static label without any
user interaction.
An extremely simple property which represents a static label.
A field validator that works with both ListField and ListSubsetField to ensure that
at least one item is selected.
Wraps a JList to allow for multi-selection of some object type.
A demo panel to show off the List and Panel related FormFields.
Adding a list item is one of the actions that we can't supply out-of-the-box,
because we don't know what type of data the list holds or what the list represents.
Shows a quick help popup for the list item action buttons, which may not be self-explanatory to new users.
An EnhancedAction that can be used with any ListField to clear all items from the list.
An EnhancedAction that can be used with any ListField to move the selected items up or down in the list.
Specifies the direction in which list items will be moved when
this action is executed.
An EnhancedAction that can be used with any ListField to remove the selected items from the list.
An EnhancedAction that can be used with any ListField to select all items in the list.
A simple Validator that can be attached to a ListField to ensure
that the list is not empty.
Presents a vertical JList of items, with an optional header label above the list,
and an optional list of command buttons under the list.
Wraps a ListField to allow for a multi-select property.
Represents a FormField that allows selection of a subset from a list.
Represents an AbstractProperty wrapper around the ListSubset form field.
A singleton LogConsole window that works with LogConsoleHandler to display
log messages within an application (viewable via the AboutPanel or by
showing it programmatically).
A logging handler implementation specifically to support the LogConsole within
applications that use sc-util.
Can be used to listen for theme or style changes in a LogConsole.
A demo panel to show off the LogConsole and the LogConsoleStyle/LogConsoleTheme
customizations that you can do to it.
Represents configuration options for a specific LogConsole message style.
A LogConsoleTheme represents a set of LogConsoleStyle objects that can be applied
within the LogConsole.
A compound (multi-component) FormField for grouping all of the fields required
to configure a LogoGenerator request.
Utility class to generate small, text-based images that can serve as a
very quick logo type of thing.
Represents a configuration preset for logo images, to be used with LogoGenerator.
A FormField implementation specifically for long (multi-line) text input.
Represents a property that can store a long text (multi-line) value.
This is a simple wrapper class to manage the various look and feels that
spring-extras supports.
Can be used to specify margins and padding around and inside a FormField,
or any other component that supports this Margins class.
A very simple interface that can be used to listen for changes to a Margins instance.
A FormField implementation for viewing or editing a Margins instance.
An AbstractProperty to wrap a Margins instance.
Simple utility class to show messages to the user via JOptionPane while also simultaneously
logging them.
An empty adapter class for MultiProgressListener.
Replacement for Java's ProgressMonitor class, which is a bit limiting.
Long progress messages are truncated at a fixed length to avoid rendering
problems with very large JLabels on the dialog.
Serves as a progress listener for some work task that involves multiple major steps,
each with some variable number of minor work steps.
Represents some generic worker thread that performs a complex task (major steps and minor steps),
and can be subscribed to for major and minor progress events.
A simple field validator for text fields that ensures that the field does not have a blank value.
A FormField that wraps a JSpinner to allow numeric input.
Used by our various options classes to notify listeners that an option
has changed and that the UI should be updated.
Provides an easy abstract way to create new demo panels and load them into the DemoApp.
A FormField that wraps and exposes a JPanel, into which callers can render
whatever extra custom components they want to display inline with the form.
This property wraps an empty PanelField and allows you to add
subfields dynamically to it when the property's FormField is created.
A FormField for password input.
A property to represent a password, which should by default be hidden in the UI.
Provides a way to listen for events from a PlaybackThread.
Provides a worker thread that can be used to play audio clips.
A dialog that can be used to view or edit text in a resizable window.
A quick demo of the capabilities of the progress classes.
Provides a wrapper around java's Properties class, with convenience methods that
abstract away the type conversions that callers would otherwise have to worry about.
Demo panel to show off PropertiesManager and PropertiesDialog capabilities.
An example enum to show off EnumProperty.
PropertiesDialog can display and allow editing of a list of AbstractProperty
instances.
Provides a highly configurable wrapper around a set of related properties,
along with ways to manage them and present them to the user for viewing and modification.
Can be used for sorting of AbstractProperty instances by their fully qualified names.
Can be used with AbstractProperty and all of its implementations to listen for live changes
on the FormField that was created by and is managed by that property.
Used by PropertyFormFieldChangeListener to indicate that a change has been made in a FormField
that was created and is managed by some AbstractProperty instance.
Provides an interface for listening for recording events.
Provides a worker thread that can be used to capture audio and record it.
Sometimes you want mouse events that arrive on a child component to bubble up to the
containing component to be processed there.
A generic utility class for managing access to resources packaged within a jar file.
Contains static convenience methods related to scroll panes.
A FormField implementation specifically for short (single-line) text input.
Implementations of this interface can be optionally supplied to UpdateManager
to be invoked before the application is restarted.
This utility class provides convenient wrappers for creating public/private key pairs,
using a private key to sign a file, and using a public key to verify a file signature.
Simple adapter class for SimpleProgressListener.
Serves as a progress listener for some generic work task.
Represents some generic worker thread that performs a simple task, and can be subscribed
to for progress events.
Allows an application to enforce a single running instance.
Invoked when startup arguments are received from a new instance.
Wraps a JSlider and provides options for configuring it.
Can be extended to show a read-only code snippet in a popup window.
A custom LayerUI that can apply a fun "falling snow" effect to a JPanel
by drawing little animated snowflakes over it.
Controls the likelihood of a new snowflake appearing each frame.
Controls the "wind", or the amount of horizontal drift of the snowflakes and their direction.
Normally the SplashScreen that comes with AWT is good enough for an application.
Provides static utility methods for tracking how long operations take, for logging
and diagnostic purposes.
A utility class for taking a formatString and performing a configurable
mapping using a provided mapper function.
A very simple functional interface for mapping format tags to replacement strings.
Centralizes and manages access to the various resource images that are used in swing-forms.
A PropertiesDialog implementation that generates the "classic" properties dialog,
with a separate tab for each major category of properties, and
header labels used to separate the subcategories.
This utility class can be used to quickly "guess" if a file is likely a text file
based on the presence of non-printable characters in a sample of its content.
Builder for configurable text file detection.
Provides an easy way to get text input from the user, very similar to JOptionPane's showInputDialog method,
but with optional configurable validation on the allowed input.
A demo panel for showing off the new TextInputDialog.
A custom JTabbedPane that allows toggling tab header visibility at runtime.
An abstract base class for actions that are intended to be added to a ToolBar.
A simple Supplier-like interface for supplying ToolBarActions for an ActionPanel.
A very simple Supplier-like interface for supplying new actions for an ActionGroup
within an ActionPanel.
This class only exists to relieve some clutter from the ActionPanel class,
which is getting quite large.
Our buttons are placed in a container panel at the bottom of each ActionGroup.
Applications built with swing-extras have a way of detecting if they are out of date, or if any of their
currently-installed extensions are out of date.
Callers can subscribe to receive notification events from an UpdateManager.
Your application can package a json file which represents one or more "update sources" - that is,
remote URLs where your application can check for new versions, and also to enable discovery and installation
of new extensions, or new versions of already-installed extensions.
Represents a single remote update source, for use with the UpdateConfiguration class.
Used by FieldValidator to report successful or unsuccessful validation on a FormField.
Can be added to a FormField to receive notification when the FormField's value
has changed.
Contains project-related constants that can be referenced from
anywhere in the code as needed.
Represents the version manifest for an application, with all of its versions and all
of its extensions.
Represents a single version of the application in question, along with all of its
compatible extensions.
Represents a single extension for the application in question, along with all
of the versions of this extension.
Represents a single version of a single extension.
Compares String versions in a sane and predictable way.
Represents a preferences object that can be used with AudioUtil.generateWaveform().
A ConfigPanel instance that allows viewing and editing settings for a WaveformConfig object.
A ConfigPanel implementation for AudioWaveformPanel.
A FieldValidator that enforces yyyy-mm-dd format on a given TextField.