Программирование на Java

       

Метод action


В методе action мы определили рабочие поля btn, str1 и str2:

Button btn; String str1, str2;

В начале своей работы метод action определяет, какой компонент вызвал событие. Для этого анализируется поле evt.target:

if(evt.target instanceof Button) { . . . return true; } else if(evt.target instanceof Choice) { . . . return true; } return false;

Наш метод action обрабатывает события, вызываемые объектами классов Button и Choice. Если событие вызвано компонентом, относящимся к какому-либо другому классу, метод возвращает значение false. Этим он сигнализирует, что обработка события не выполнялась.

В случае успешной обработки события метод action возвращает значение true.

Если событие вызвано кнопкой, наш метод action проверяет, какой именно. Обработка выполняется только в том случае, если через поле evt.target передается ссылка на кнопку btReady:

if(evt.target.equals(btReady)) { . . . } else { return false; } return true;

В противном случае метод action возвращает значение false, отказываясь от обработки события.

Что делает обработчик события, создаваемого кнопкой?

Прежде всего, он сохраняет ссылку на кнопку в рабочей переменной (просто для того чтобы показать, как это делается):

btn = (Button)evt.target;

Далее наш обработчик события извлекает текстовые строки из однострочных текстовых полей, вызывая для этого метод getText. Эти строки записываются в рабочие переменные str1 и str2:

str1 = txtFirstName.getText(); str2 = txtSecondName.getText();

Затемметод action проверяет состояние переключателей с независимой фиксацией chbox1 и chbox2. Если они включены, содержимое соответствующих временных переменных добавляется в многострочное текстовое поле txta:

if(chbox1.getState()) txta.append(str1);

if(chbox2.getState()) txta.append(str2);

Для добавления мы вызываем метод append.

Аналогичным образом преверяется состояние переключателей с зависимой фиксацией:

if(rd1.getState()) txta.append("\nMode 1\n");

if(rd2.getState()) txta.append("\nMode 2\n");



Содержание раздела