|JXButtonPanel||Smart panel for displaying buttons in OS specific & local specific order|
|JXComboBox||Enhanced JComboBox supporting embedded tables, etc|
|JXDatePicker||Standard date chooser component|
|JXEditorPane||Enhancements to JEditorPane|
|JXErrorDialog||Enhanced standard error dialog|
|JXFindDialog||Standard find dialog|
|JXGlassBox||Dismiss on click & drop shadow functionality|
|JXHyperlink||Extends AbstractButton, adds action listener support|
|JXImagePanel||Displays an image|
|JXList||Adds in place editing to JList|
|JXLoginDialog||Standard Login Dialog|
|JXMonthView||Displays a month calendar|
|JXPanel||Adds translucency to the standard JPanel|
|JXRadioGroup||Simplifies dealing with ButtonGroup & JRadioButton|
|JXStatusBar||Enhanced status bar functionality|
|JXTable||Adds filtering/sorting/highlighting/column hiding to JTable|
|JXTaskPane||Contains actions and hyperlinks, provides "collapsing" functionality|
|JXTitledPanel||Title bar added to the JXPanel ala JGoodies|
|JXTree||Enhancements to JTree|
|JXTreeTable||Combination of JTree & JTable|
This component extends JComboBox by allowing any JComponent to be embedded in the popup. Some possible uses include an embedded JXTable, a color chooser popup, or some custom image popup.
A simple and very useful component that allows the user to either type in a date, or pick one from a dropdown.
The JXEditorPane contains several very interesting and useful extensions to it's JEditorPane counterpart. First, it adds support for self closing tags. While not strictly HTML 3.2 compliant, self closing tags (<br/>, for example) are common today. The JXEditorPane correctly reads HTML that contains these kinds of tags. As part of this work, it provides hooks to allow the developer to add logic to transform invalid HTML into valid HTML. In addition, it also provides pluggable support for HTML extensions. For example, one might create a special HTML tag <myImageTag> and have it associated with a JXImagePanel. In this way, when parsing the HTML, the JXEditorPane will create and embed a JXImagePanel in the document.
Though not novel, the JXHyperlink fills in an important gap for rich client applications. Essentially, the JXHyperlink is a button that supports mouse-over feedback (an underline is shown) and appears as a piece of text. The goal of this component is to look and feel like a hyperlink on any webpage.
While JLabel's and JButton's allow you to easily add images to your Swing applications, the JXImagePanel makes it trivially easy to add any BufferedImage or Icon to your Swing applications. If editable, it also provides a way for the user to change the image. In addition, the JXImagePanel provides many built in effects out-of-the-box, including Tiling, Scaling, Rotating, Compositing, and more
The JXLoginDialog and JXLoginPanel are easy to use components for creating and displaying attractive, informational and useful login screens. The JXLoginDialog provides an out-of-the-box login dialog that can be used with most applications. The JXLoginPanel is an embeddable component that handles the actual login process by using the classes in the org.jdesktop.swingx.auth package.
Perhaps one of the most novel and visually pleasing components in the SwingX toolkit, JXMonthView is a component that displays one or more calendar months on a canvas. As the JXMonthView component increases in size, more calendar months are displayed. This interesting component can be used in a standalone manner, or as part of a date chooser component. In fact, the JXDatePicker component uses the JXMonthView for it's drop down content.
JXPanel adds translucency and gradients to the original Swing JPanel. It is designed (as all of the SwingX components are) as a drop in replacement for existing JPanels. JXPanel is leveraged extensively throughout the SwingX code base, and can be used to accomplish some very interesting visual effects.
Titled panels are a common idiom in both rich client application development and in web development. The original titled panels were essentially an etched border with a title that surrounded a set of components. However, titled borders have a few drawbacks: