ApplicationXML поддерживает события, в число которых входят, в каждом объекте по своему (см документацию на объекты), события, типа, onClick, onAction, onConnected, onDisconnected, onMouseOver и т.д. Для каждого события appxml-программист может написать собственный код либо на Java, либо с использованием функций и выражений ApplicationXML. Код пишется либо внутри соответствующего атрибута, либо внутри вложенного тэга с аналогичным именем. Имена событийных атрибутов или тэгов всегда начинаются на префикс «on».
Пример:
Вариант а.
<label text="Hello, world!" onClick="println(this.text)" />
Вариант б.
<label text="Hello, world!">
<onClick>
println(this.text);
</onClick>
</label>
Если код пишется на Java, то он должен быть оформлен во внешнем файле, скомпилирован и подключен в соответствии с синтаксисом и правилами Java. Имя вызываемого метода указывается внутри соответствущего атрибута соответствущего объекта с использованием префикса «java:». Если метод подразумевает получение параметров, то они указываются обычным способом.
Внимание! В Java-коде метод всегда принимает, как минимум, один параметр типа Object - ссылку на объект, внутри которого возникло событие. Т.о. если метод имеет прикладные параметры, то в реализации их должно быть всегда больше на один.
Пример:
<!-- ApplicationXML -->
<label text="Hello, world!" onClick="java:my_method" /> <!-- Можно без скобок -->
<label text="Hello, world!" onClick="java:my_method()" /> <!-- Можно со скобками -->
<label text="Hello, world!" onClick="java:my_method(1, 'string', true)" /> <!-- Можно с параметрами: число, строка, буль -->
<!-- Java -->
// для первого и второго случаев выше
public void my_method(Object obj) { ...; return; }
// для третьего случая выше
public void my_method(Object obj, int p1, String p2, boolean p3) { ...; return; }
Если код пишется на ApplicationXML, то он должен записываться внутри соответствующего атрибута или тэга.
Пример:
<label text="Hello, world!">
<onClick>
println(this.text);
</onClick>
</label>