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>