Новые книги

Расширьте мощность и гибкость Блендера с помощью Питона: высокоуровневого, легкого для изучения скриптового языка
«Кибернетика» — известная книга выдающегося американского математика Норберта Винера (1894—1964), сыгравшая большую роль в развитии современной науки и давшая имя одному из важнейших ее направлений. Настоящее русское издание является полным переводом второго американского издания, вышедшего в 1961 г. и содержащего важные дополнения к первому изданию 1948 г. Читатель также найдет в приложениях переводы некоторых статей и интервью Винера, включая последнее, данное им незадолго до смерти для журнала «Юнайтед Стэйтс Ньюс энд Уорлд Рипорт».

Книга, написанная своеобразным свободным стилем, затрагивает широкий круг проблем современной науки, от сферы наук технических до сферы наук социальных и гуманитарных. В центре — проблематика поведения и воспроизведения (естественного и искусственного) сложных управляющих и информационных систем в технике, живой природе и обществе. Автор глубоко озабочен судьбой науки и ученых в современном мире и резко осуждает использование научного могущества для эксплуатации и войны.

Книга предназначена для научных работников и инженеров.

Кнопки

Кнопки

Оглавление

Компоненты
Кнопки
Переключатели
Списки Choice
Списки List
Поле Label
Поле TextField
Поле TextArea
Аплет FormDemo

Как мы уже говорили, стандартные кнопки создаются на базе класса Button. Этот класс очень простой, поэтому мы приведем полное его описание:

Класс Button

Конструкторы

В классе Button определены два конструктора, первый из которых позволяет создавать кнопку без надписи, а второй - кнопку с надписью. Обычно используется второй конструктор.

  public Button();
  public Button(String label);

Методы

  • addNotify

Вызов метода createButton

public void addNotify();

Получение надписи на кнопке

  • getLabel
public String getLabel();

Получение строки параметров, отражающей состояние кнопки

  • paramString
protected String paramString();

Установка надписи на кнопке

  • setLabel
public void setLabel(String  label);

Из методов класса Button вы будете использовать чаще всего два - getLabel и setLabel. Первый из них позволяет получить строку надписи на кнопке, а второй - установить новую надпись.

Обычно аплет создает в своем окне кнопки в процессе своей инициализации при обработке метода init, например:

Button btn1;
. . .
public void init()
{
  btn1 = new Button("Button 1");
  add(btn1);
}

Здесь мы создали кнопку с надписью Button 1. Затем мы добавили эту кнопку в контейнер, которым является окно аплета, с помощью метода add.

Обработка событий от кнопки

Для обработки событий, создаваемых кнопками и другими компонентами, вы можете переопределить метод handleEvent. Однако существует и более простой способ.

Этот способ основан на переопределении метода action, который получает управление, когда пользователь совершает какое-либо действие с компонентом. Под действием подразумевается нажатие на кнопку, завершение ввода текстовой строки, выбор элемента из списка, изменение состояния переключателя и так далее.

Прототип метода action представлен ниже:

public boolean action(Event evt, Object obj)
{
  . . .
}

В качестве первого параметра методу передается ссылка на объект класса Event, содержащий всю информацию о событии. Второй параметр представляет собой ссылку на объект, вызвавший появление события.

Как обрабатывать событие в методе action?

Прежде всего необходимо проверить, объект какого типа создал событие. Это можно сделать, например, следующим образом:

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

Здесь мы с помощью оператора instanceof проверяем, является ли объект, вызвавший появление события, объектом класса Button.

Далее, если в окне аплета имеется несколько кнопок, необходимо выполнить ветвление по ссылкам на объекты кнопок, как это показано ниже:

if(evt.target.equals(btn1))
{
  . . .
}
else if(evt.target.equals(btn2))
{
  . . .
}

. . .

else
{
  return false;
}
return true;

Тем из вас, кто создавал приложения Windows на языке программирования С, этот фрагмент кода может напомнить длинный переключатель switch обработки сообщений Windows.