Overview

This library allows to generate automatically the GUI (general user interface) of any Java object.

The generation of the GUI requires no other information that the object itself. Its structure is discovered at runtime through Java reflection.The generated GUI can be customized in a non-intrusive way by overriding some key methods of the generator objects.

Use Cases

  • Developing project GUI by generating and customizing it
  • Prototyping a GUI
  • Exploring a library capabilities quickly through a generated GUI

Basic Object Dialogs

URL Dialog Exception Dialog Class Loader Explorer

Project GUIs done using ReflectionUI

Testing Toolkit Custom UI
 

 

Features

  • On the fly Swing GUI generation
  • Generates controls for public fields
  • Generates controls for getter and setter fields
  • Generates controls for methods
  • Generates dialogs for Exceptions
  • Automatic undo/redo management
  • Automatic copy/cut/paste management
  • Dynamic menus support
  • Field validation management
  • On-line help management
  • Non-intrusive customizations
  • Extensibility support
  • Generator pluggable to any data model

Getting started

How to include in a project

With Maven

With The all-in-one archive

  • Get the archive file “reflection-ui-x.x.x-dist.zip” from the download page
  • Extract it
  • Add the following jar to your classpath:
    • reflection-ui-x.x.x.jar
    • dependency/*.jar

How to test

In order to test the library:

  • Run the main class “xy.reflect.ui.ReflectionUI”
  • Enter any class name in the input dialog. Example: “java.util.Date”
  • Enjoy!

How to use

Read this example, see how simple it is,  and start coding:

 

Download

ReflectionUI is open source. Download it from the Github repository.

Features

  • On the fly Swing GUI generation
  • Generates controls for public fields
  • Generates controls for getter and setter fields
  • Generates controls for methods
  • Generates dialogs for Exceptions
  • Automatic undo/redo management
  • Automatic copy/cut/paste management
  • Dynamic menus support
  • Field validation management
  • On-line help management
  • Non-intrusive customizations
  • Extensibility support
  • Generator pluggable to any data model

Documentation

Basics

More Examples

Explore the the examples in the source code for more information.

Support

The support page is hosted here on GitHub.