Swing GUI Builder and Java Framework using XML
License & Purchase


The JEasy Example

The JEasyExample is part of the download and includes all sources and the GUI xml file.
Every tab demonstrates one of the features of the GUI and the jeasy runtime library.
Most of the tabs have their own source that can be ssen by pressing the sourcecode button at the top.

Start the example by Java Web Start!

Undecorated frame
The example starts as a frame without a decoration. It shows who that works and
how to resize the frame by catching the mouse dragged events inside the clients method performMouseEvent(...).

This tab show the most used components and how the are serialized and deserialized by an xml message. The measage is a jeasy object that belongs to one or more panels or any component.

An important component is the table. JEasy has made a lot enhancements to this component. The left click at the header sorts the columns depending on its type. Sorting considers numeric and alphanumeric values date, time and currencys.
The right click opens a filter. Pressing the Strg+ key down allows multiple filters.
As an option the table may have a sum row at the end of the table. Numeric values and currencys are summed automatically.

Swing uses layout managers to organize components in a panel. This tab shows the GridBagLayout and several ways to build up a form.

Every datafield in jeasy has a reference to a datatype. It defines the basic type, num, char, date, time or currency, the format, the min and max value and a regular expression. If a field will loose the focus the jeasy validation is called and proofes the input against the defined datatype. In your programm the CallBackInputVerifier is called with the parameters jeasy id, the user input and the error code.

In JEasy a locale specifies a country a language and a variant. In the JEasy Repository everey propertie can be locale individuel. You may set another label or tooltip combined with a locale of a foreign language. But also every other propertie can be set. The example shows a custom specific locale containing a new field.

Http connector
The JEHttpConnector, part of the jeasy library, and the servlet JEHttpConnector transfer data between client and server. Configurations of the servlet in web.xml let may compress or crypt the data. During development you can inlcude your server classes and debug into them using the JEHttpConnector in develop mode. The example call a server method at every document event when typing text.

Most of the example tabs have their own sources. Pressing the sourcecode button will show them. See that you need only a few lines for implementing your business case.

JEasy uses the java SAX Parser to read xml in its JENode structure. From this it is easy to show the xml as a tree. The example shows a tree containing the GUI xml JEasyRepository.xml. AT the right panel every node is shown with its elements. Browse through the tree to see how the example GUI is defined.

Dynamic Panel
The jeasy library offers a component called JEDynamicContainer. The first parameter is a panel that will contain the components. The second parameter is a xml JENode, where the components and properties are defined. The JEDynamicContainer will build a form at runtime. If you have a message object that references to the panel, all fields will be serialized by the message automatically.

Dynamic Table
Tables are defined inside the JEasyRepository or may be created dynamic by a xml string. You are abled to define the metadata and every row and its columns.

Internal frames
Internal frames enables MDI applications.

JDBC and tables
The jeasy JETable can perform a query sql statement and fill itself out of the metadata and the rows. It is an very easy way to show tabledata. The example uses an embedded derby database.

JEasy has a scripting language to automate user input. It may be used for automated testing.

Optical features
To give the components a better look use GradientPaint, TexturePaint or use html format for the labels. Only labels with big fonts should use antialiasing.