gui4j ist ein Framework zum vollständigen Beschreiben der Swing-GUIs von Java in XML. Die GUI wird dynamisch erzeugt auf Basis der XML-Definitionen. Jedes GUI-Fenster ist mit genau einer XML-Datei verknüpft, allerdings kann jede XML-Datei dynamisch andere XML-Dateien inkludieren, um komplexe GUI-Definitionen zu unterstützen. Jede XML-Datei ist mit einem Java-Objekt assoziiert, das sowohl als Controller als auch als Modell für die GUI dient. Die Ebenen des GUIs und des Controllers sind scharf voneinander getrennt: GUI-Definitionen in den XML-Dateien können auf alle Java-Methoden des Controllers zugreifen, doch Java-Methoden können auf kein GUI-Element direkt zugreifen. Events werden verwendet, um Änderungen in der GUI auszulösen. (hjb)