Microsoft Visual J++. Создание приложений и аплетов на языке Java



   https://lastplay.appspot.com/             

Метод action


Метод action проверяет, является ли объект, создавший событие, кнопкой. Для этого он сравнивает ссылку на объект, передаваемую через поле evt.target, с объектом Button, пользуясь оператором instanceof. Так как поле evt.target может содержать ссылку на любой объект, способный создавать события, а не только на объект типа Button, эта проверка необходима для исключения ложных срабатываний на чужие события.

Если событие создано кнопкой, ссылка на эту кнопку сохраняется в переменной btn:

Button btn;

btn = (Button)evt.target;

При этом мы выполняем преобразование типов.

Далее метод action получает название кнопки (то есть строку, написанную на поверхности кнопки) и сохраняет его в переменной sTextLabel:

sTextLabel = btn.getLabel();

Для получения строки названия кнопки используется метод getLabel, определенный в классе Button.

Затем метод action проверяет, от какой конкретно кнопки пришло событие, выполняя ветвление с помощью оператора if - else if - else:

if(evt.target.equals(btn1))

{

  showStatus("Button 1 (\"" + sTextLabel + "\") pressed");

}

else if(evt.target.equals(btn2))

{

  showStatus("Button 2 (\"" + sTextLabel + "\") pressed");

}

. . .

else

{

  return false;

}

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

Если ваша реализация метода action не обрабатывает событие, она может передать его методу action базового класса, как это показано ниже:

super.action(evt, obj);

В том случае, когда событие было обработано, метод action перерисовывает окно аплета, вызывая метод repaint, и затем возвращает значение true:

repaint();

return true;




Содержание  Назад  Вперед