JavaHMI is an Open Source
Java™ API for developing human machine interfaces.
It is based
on a observable/event driven control structure. JavaHMI's
graphical components can be programmatically attached to
remote controller resources.
resource monitoring objects are event driven, in that they fire change events
when the resource changes state. An operating range
can be defined for a monitored resource. If the operating
value goes outside this range the object can be set to fire an alarm
event. This makes data/alarm logging extremely simple.
JavaHMI Demo 1
of JavaHMI's digital IO interface components.
JavaHMI Demo 2
of JavaHMI's analog IO interface components.
JavaHMI Demo 3
of JavaHMI's process control capabilities. This
demo incorporates both digital and analog components.
*The demos above are viewable
using Java™ Webstart.
Download Webstart Now.
Driven Control Structure
ControlObserver class is the core of JavaHMI's
sophisticated resource monitoring structure.
Extending ControlObserver through the abstract classes
DecimalControlObserver, IntegerControlObserver and
BooleanControlObserver provides implementations of
ControlObserver with specific read/write capabilities.
JavaHMI includes a number
of rich graphical components that interact with a single
or collections of ControlObserver implementations.
JavaHMI's graphical components use ControlObserver to maintain
their appearance by listening for ControlChangeEvents and ControlAlarmEvents.
The ControlObserver object
fires a ControlChageEvent when the state of the ControlObservable
has changed and fires a ControlAlarmEvent when the current
state has breached the normal operation bounds defined by
the read/write specific implementations of
Digital IO Component Interfaces
- Pilot Lights
- Toggle Buttons
- Momentary Buttons
- Check Boxes
- Radio Buttons
- Digital Event Strip Charts
Variable IO Component
- Analog Gauge
- Progress Bar
- Text Field
- Variable IO Strip Chart
- Horizontal Bar Chart
Process Control Components
Do you have an idea for a
JavaHMI icon? Send your suggestions to