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 a 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



  • 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 area
  • 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:


ReflectionUI is open source.

Use it with maven as described here


Download it from the Github repository.



If one needs to use this library beyond these basics, then more documentation will be required. This documentation will be written later. Let us know if you are interested or even if you want to get involved. We need more motivation from you. Thanks.

More Examples

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


The support page is hosted here on GitHub.