Swing-Komponenten und Swing-Frameworks

SwingX (LGPL)

Form the homepage: "The SwingX project exists to provide extensions to existing Swing components and Swing architecture (such as an ActionManager for helping manage Action instances). Whereas the JDNC project focuses on a general Application framework and solving a more specific set of application design problems, the SwingX project focuses exclusively on the raw components themselves. [...]"

  • [Screenshot]JXDatePicker - Standard date chooser component
  • JXPanel - Adds translucency to the standard JPanel
  • JXGlassPanel - Dismiss on click & drop shadow functionality
  • JXTitledPanel - Title bar added to the JXPanel ala JGoodies
  • JXHyperLink - Extends JLabel, adds action listener support
  • JXRadioGroup - Simplifies dealing with ButtonGroup & JRadioButton
  • JXScrollUp - Extends JXTitledPanel, adds collapsing functionality
  • JXStatusBar - Enhanced status bar functionality
  • JXMonthView - Displays a month calendar
  • JXImagePanel - Displays an image
  • JXErrorPane - Enhanced standard error dialog
  • JXEditorPane - Enhancements to JEditorPane
  • JXList - Adds in place editing to JList
  • JXTable - Adds filtering/sorting/highlighting/column hiding to JTable
  • JXTree - Enhancements to JTree
  • JXTreeTable - Combination of JTree & JTable [UI Specification]
  • JXFindDialog - Standard find dialog
  • JXComboBox - Enhanced JComboBox supporting embedded tables, etc
  • JXButtonPanel - Smart panel for displaying buttons in OS specific & local specific order"
  • JXTitledSeparator
[Screenshot]

Read SwingX: Conserve Navigation Real Estate with JXScrollups  and L2FProd: Conserve Navigation Real Estate with  JTaskPaneGroups about the task pane widgets.

MultiSplitPane is a Swing container which supports a resizable tiled layout of arbitrary components. It's like a JSplitPane with more than two components. It is distributed as a part of SwingX.

[Screenshot]

See an example with Java WebStart.

See more Screenshots.

ScrollPaneSelector (SwingX Incubator)

Gives an overview of the content of a JScrollPane. A demo source code is in the incubator too.

[Screenshot]

 

Flamingo component Suite

Die Flamingo Swing Component Suite ist oft durch ihre Hauptkomponente bekannt, dem Ribbbon (bekannt als Microsoft Office 2007 Command).

Eine weitere Komponente, die auch im JRibbon benutzt wird, ist der Command Button (JCommandButton und JCommandToggleButton ), also eine Schaltfläche mit einem Auswahlmenü.

Die Command-Buttons können in einer Gruppe, genannt Command-Button Strip und Command button Strip zusammengefasst werden.

Eine weitere Komponenten ist die Breadcrumb bar. Man kann sie im oberen Screenshot schon erkennen. Nützlich ist das für ein Fiile viewer panel.

Als letztes bietet die Flamingo Suite noch skalierbare Icons. Diese Eigenschaft wird aber eher intern von den Komponenten genutzt, wobei natürlich die Klassen auch für eigene Anwendungen zur Verfügung stehen.

JIDE Common Layer

JIDE ist ein Unternehmen, welches schon seit vielen Java qualitativ hochwertige Swing-Komponenten baut. Einige der Komponenten sind frei (JIDE Common Layer (Open Source Project)), weitere wie das Docking-Framework, Action Framework, (Pivot) Grids, Code Editor und weitere gehören zum kommerziellen Teil. Die Komponenten aus dem JIDE Common Layer stehen unter dual-license: GPL und free commercial license.

Textbox, die sich automatisch erweitert

Tabelle und Liste mit Checkboxen, Split-Pane mit mehreren Bereichen

 

Neue Border und Border-Layout mit anderer Anordnung Norden und Süden

Button-Gruppe und Datums, Popupmenü verbreiterbarer Größe und Zeit/Datum-Auswahl

Neue Standard-Dialoge

Verzeichnisauswahl

Overlay legt Komponenten über andere Komponenten

Scrollpane mit Platz für weitere Komponenten, Slider mit zwei Enden

Container mit Suche und Selektion

Statt Scrollbar automatisches Scrollen durch Pfeile

Diverse Label

Reiterkomponente

L2FProd.com - Common Components (Apache)

From the homepage: "Editing properties, Building task oriented applications, Organizing the option dialog, Selecting fonts and directories".

[Screenshot]

Components are going to SwingX!

JFreeChart (LGPL)

From the homepage: "JFreeChart is a free Java class library for generating charts, including: pie charts (2D and 3D); bar charts (regular and stacked, with an optional 3D effect); line and area charts; scatter plots and bubble charts; time series, high/low/open/close charts and candle stick charts; combination charts; Pareto charts; Gantt charts; wind plots, meter charts and symbol charts; wafer map charts".

[Screenshot]

Nice WebStart for components.

xhtmlrenderer Flying Saucer (LGPL)

100% Java XHTML + CSS Renderer. A good alternative to the poor Swing renderer.

Lobo Project (GPL)

The Lobo Project (formally known as XAMJ Project/Warrior Browser) consists of a Web browser and HTML renderer. It supports JavaScript (basis AJAX is working), basic CSS2, Lists, Tables, Framesets, Forms.

http://lobobrowser.org/images/lobo-screenshot-api.jpg

Quaqua Look and Feel  (LGPL or BSD)

JBrowser (part of Mac OS Look-and-Feel implementation) mimicas the look and behaviour of a Mac OS X NSBrowser component (aka column view).

[Screenshot]

datatips

Datatips zeigt mit einem Einzeiler (DataTipManager.get().register(treeTableOrListcomponent);) über einen Tabellen-, Baum oder List-Renderer die Daten in einer Tooltip an.

data tip and tool tip showing simultaneously

TreeWrapper (LGPL)

Very flexible drag and drop for JTree.

[Screenshot]

Features (from the homepage):

  • No need to extend JTrees: any JTree (or derivative) will work
  • Provides visual feedback for drag an drop, but respects existing custom cell renderers.
  • Automatically expands collapsed nodes during drag and drop.
  • Automatically scrolls the JTree during drag and drop.
  • Supports drag and drop operations between different JTrees
  • Supports both copy and move operations between trees
  • Automatically bans dragging a parent into a child
  • Allows for string-to-tree drag and drop, (so that you can drag from a JTextField, for instance)
  • Easily customizable: using listeners you can veto drag and drop operations
  • Adds support for custom popup menus in trees

InfoNode (GPL/commercial)

Docking windows for Swing.

[Screenshot]

FlexDock (MIT)

Form the homepage: "FlexDock is a Java docking framework for use in cross-platform Swing applications. It offers features you'd expect in any desktop docking framework such as: Tabbed and Split Layouts, Drag-n-Drop capability, (with native drag rubber band painting on some platforms), Floating windows, Collapsible Containers to Save Real Estate, Layout Persistence".

[Screenshot]

[Screenshot]

A tutorial is available here: FlexDock.

Docking Frames

[Screenshot]

MyDoggy

From the homepage: "MyDoggy is a Java docking framework to be used in cross-platform Swing applications. MyDoggy is an IntelliJ Idea like docking framework for managing secondary windows within the main window. MyDoggy allows to move,resize or extract those secondary windows. Also, MyDoggy provides support for content management of the main window. Like Eclipse, MyDoggy supports the concept of 'prospective' using mydoggy groups." Demo: MyDoggySet (WebStart)

[Screenshot]

The DJ Project

"The DJ Project is a set of tools and libraries to enhance the user experience of Java on the Desktop." Take a look at the components with a Java Webstart (Win32) demo.

http://djproject.sourceforge.net/ns/screenshots/images/WebBrowser.png

 

http://djproject.sourceforge.net/ns/screenshots/images/FlashPlayer.png

swingfx (BSD)

Form the homepage: "SwingFX is a suite of Swing effects, components and more. SwingFX was created to provide a central location for interesting, stylish, and useful projects. These projects are created to enhance user interfaces created using Swing and Java2D." See Spotlight demo.

Xito Dialog Framework (Apache License)

Form the homepage: "Dialog Framework provides a simple to use Dialog API which provides flexible attractive user interfaces for alert messages and dialogs. The Dialog framework can be used to show simple messages or warning or can be used to display complete custom dialogs"

[Screenshot]

Flamingo Components (BSD)

One component is a "Ribbon". It is Swing component that provides capabilities of a Office 12 Command Bar.

JGui (commercial)

Form the homepage: "JGui is a collection of useful Java GUI components and utilities. JGui includes:

  • Docking windows framework for Swing and AWT
  • Dynamic Tree Framework
  • ThreadManager - helps to distribute tasks to a number of threads
  • TLToolTipManager - shows hidden parts of JTree's and JLabel's cells
  • JShape - not rectangular translucent components"

Some demos are availiable as through WebStart, WebStart, WebStart, WebStart and more Applets.

Components from Santhosh Kumar's

Santhosh Kumar is very active and has a lot of interesting Swing components and additions on his weblog.

 

 

 

[Screenshot]

[Screenshot]

His DropDownButton::

[Screenshot]

For DND in a JTable hi addes a "visual clue":

[Screenshot]

Also on his site: A LayoutManager for width equals compontens in row or column and JToolbar Tooltips with shows the accelerator.

[Screenshot]

Use of CurrentLineHighlighter:

[Screenshot]

Check-boxes to any JTree..

[Screenshot]

The EqualsLayout is nice:

[Screenshot]

He collected the componets under MySwing.

Zeus Java Swing Components Library (LGPL)

From the homepage "Zeus a Java Swing Components Library. Provides usefull swing components for easier GUI development. Some of the major components are: JConsole, JSplash, TableSorter, WindowManager, SingleAppInstance and much more." The WindowManager offers window alignments like Cascade, Tile, ...

[Screenshot]

Wingz Widget

From the homepage: "Wingz provides all the components you need to build a rich application. For example, today's requirements demand more than a simple TextField . You need a DateField, a MoneyField etc ... From ZButton to ZAccordion, each component of Wingz is extended from Swing components". Demos availiable. Very nice, but seems to be a little slow.

laf-widget

From the homepage: "This project contains a collection of "behavioural traits" or "widgets" for third-party Swing look-and-feels. The list of currently provided widgets:

  • Auto-completion (model-based / free-text) on editable combo boxes.
  • Hover preview of minimized internal frames on desktop icons.
  • Menu search panel on menu bars.
  • Hover preview of tab in tabbed panes.
  • Overview dialog on tabbed panes.
  • Password strength checker on password fields.
  • Lock border on non-editable text components and model-based editable combo boxes.
  • Select all text in text component on focus gain.
  • Enhanced drag-and-drop support for trees."

Enhanced Scrolling for Swing

[Screenshot]

rubber-band

Not a new component but usefull for JTree and JList: select multiple items via a rubber band..

[Screenshot]

The usage ist simple:

RubberBandTree rubberBandTree = new RubberBandTree( jTree );
JScrollPane    scrollPane     = new JScrollPane( rubberBandTree );
container.add( scrollPane );

JSntaxPane

Java EditorPane mit Unterstützung für Syntax-Highlighting. Ein

jEdtTest.setEditorKit( new SyntaxKit("java") );

reicht, und schon gibt es eine farbliche Hervorhebung.

Icons

Important Links

[Nach oben]