Introduction
ZPE 1.6.7 (November 2018) added the UI object, a built-in object that allows user interfaces (UIs) to be generated and displayed. It uses the underlying Java Swing/AWT libraries for user interfaces.
UIBuilder object functions
The following is a list of internal functions the UIBuilder object exposes. All functions are ZPEObjectNativeFunctions unless specified therefore run in native code.
- alert (string text) ⇒ boolean
- Displays a message to the user using the UI alert box.
- show () ⇒ string
- Displays the current UI object on the display.
- hide () ⇒ string
- Hides the current UI object from the display.
- get_element_by_id (string id) ⇒ object
- Gets an element using its ID. The ID must be set on the element using the set_element object function.
- set_on_close (boolean value) ⇒ void
- Determines whether the program loop should stop when the window is closed.
- Creates a new button on the GUI with the text, text.
Examples in action
The following example creates a simple GUI with two buttons, each with events attached to them.
$gui = new UIBuilder() function main() $b1 = $gui->create_button("Test button") $b1->on("click", function(){ $gui->alert("Button 1 clicked") }) $b1->set_text("Test button 1") $b2 = $gui->create_button("Test button 2") $b2->on("click", handle_of("action")) $gui->show() print("GUI created") end function function action() $gui->alert("Button 2 clicked") end function
One of the projects I have been working myself is a home automation program. As such I use ZPE/YASS to do this since it gives more power over many other languages. I use the UIBuilder to make it easy to run these programs. For example I have an option to wake and shutdown my PC. You can find my home automation program on my ZPE Online account.
The generate_ui function
The built-in generate_ui function generates a new
UIBuilderObject object. This can be stored in a
variable and referenced later using the object syntaxes.

There are no comments on this page.
Comments are welcome and encouraged, including disagreement and critique. However, this is not a space for abuse. Disagreement is welcome; personal attacks, harassment, or hate will be removed instantly. This site reflects personal opinions, not universal truths. If you can’t distinguish between the two, this probably isn’t the place for you.
Comments powered by BalfComment