ULC offers a server-side API to the complete set of Swing widgets. For cases where the standard widgets are not enough, ULC provides an Extension API that allows you to customize widgets and integrate third party libraries.
ULC can now be easily extended to suit your requirements. For example, you may want to customize a table component, or integrate an existing spreadsheet component, graphics widget, or an external device like a card reader. Likewise, you may want to introduce new data types that format and validate text values in a label or a textfield.
The ULC Code Community offers a number of free extensions and is a good starting point for developers interested in building their own ULC extensions.