Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
82
Добавлен:
24.02.2016
Размер:
257.54 Кб
Скачать

Элементы управления

Рассмотрим классы элементов управления. При их помощи можно создавать программы, обладающие развитым пользовательским интерфейсом. Язык Java содержит все стандартные элементы управления, которые можно обнаружить в современных компьютерных операционных системах. Элементы управления сначала создаются, затем добавляются в контейнер (объект класса Container) его методом add().

Кнопки

Кнопки (класс Button) - это устройства, которые дают возможность нажимать на них, чтобы проинициализировать некоторое действие.

Для создания кнопок необходимо в методе класса Container (или его подкласса) просто создать экземпляр объекта Button, дать ему имя и добавить его в контейнер:

Button myButtom=new Button("Click me!");

add(myButton);

или еще проще:

add(new Button("Click me!"));

Следует обратить внимание на то, что при создании кнопки не передаются координаты X, Y ее положения. Это происходит потому, что элементы управления, как и все устройства, размещаются на экране в соответствии с правилами, определяемыми менеджерами компоновки (размещения): при этом координаты не используются.

Создать кнопку можно с заданной меткой (строкой), а можно и без нее. Для этого предназначены соответствующие конструкторы Button()иButton(String label). Для изменения и получения метки кнопки существуют методыsetLabel()иgetLabel()соответственно.

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

При нажатии пользователем на кнопку генерируется событие ActionEvent. Для обработки этого события используется интерфейс ActionListener, а метод этого интерфейса - actionPerformed ( см. предыдущую работу). Поскольку метод в интерфейсе всего один, не имеет смысла использовать Adapter. Например, обработку событий от нажатия на кнопку можно реализовать следующим образом:

// вставили кнопку и изменили ее цвет

Button myButtom=new Button("Click me!");

myButton.setBackground(java.awt.Color.white);

add(myButton);

// добавили обработку события

myButton.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e ) {

// обработка события нажатия на кнопку

myButton.setBackground(java.awt.Color.red);

myButton.setLabel("Щелкнули на кнопке");

}

}

//...

Флажки (или переключатели)

Язык Java поддерживает два типа флажков-переключателей (класс Checkbox): исключающие и неисключающие.

Неисключающие флажки (переключатели с независимой фиксацией)могут быть выбраны независимо от состояния других флажков. Такие флажки являются самостоятельными объектами класса Checkbox, для их создания используются конструкторыCheckbox()иCheckbox(String label).

Исключающиефлажки (переключатели с зависимой фиксацией) позволяют одновременно выбрать только один элемент в группе флажков. Если выбирается другой элемент в группе, то выбор предыдущего флажка отменяется, а новый выбор выделяется. Для создания такой группы флажков сначала создается объект классаCheckboxGroup, а затем создаются объекты класса Checkboх, входящие в эту группу, для чего используется конструкторCheckbox(String label, CheckboxGroup group, boolean state).

Приведем фрагмент программного кода, в котором создаются один независимый флажок и группа из трех исключающих флажков:

// создание одного независимого флажка и добавление его в контейнер

add(new Checkbox("It is checkbox"));

// создание группы флажков

CheckboxGroup gr=new CheckboxGroup();

// создание флажков группы gr и добавление их в контейнер

Checkboх first, second, third;

// флажок сброшен

first=new Checkbox("1st checkbox from group",gr,false);

add(first);

// флажок установлен

second=new Checkbox("2nd checkbox from group",gr,true);

add(second);

// флажок сброшен

third=new Checkbox("3rd checkbox from group",gr,false);

add(third);

Класс CheckboxGroupсодержит методы для определения текущего выбора и установки нового выбора для флажков группы. МетодgetCurrent()возвращает ссылку на выбранный флажок группы, а методsetCurrent()переносит выбор на задаваемый флажок группы.

При помощи методов класса getLabel()иgetState()классаCheckboxможно получить метку флажка и текущее состояние переключателя, а при помощи методовsetLabel()иsetState() изменить метку флажка установить состояние флажка.

Для проверки того, какой группе флажков принадлежит флажок, класса Checkboxсодержит методgetCheckboxGroup(), а для того, чтобы поместить ранее созданный независимый флажок в группу, или для изменения группы, в которую теперь будет входить флажок, используется методsetCheckboxGroup().

Обработка событий от флажка в Java 1.1

При изменении состояния переключателя (CheckBox) генерируется событие ItemEvent. Интерфейс для обработки - ItemListener, в нем один метод - itemStateChanged(). Для обработки этого события нет смысла использовать Adapter:

Checkbox myCheckbox=new Checkbox("Флажок");

add(myСheckbox);

// добавили обработку события

myCheckbox.addItemListener(new ItemListener() {

public void itemStateChanged(ItemEvent e ) {

// обработка события

boolean i = myCheck.getState();

myButton.setLabel("Изменили состояние флажка");

}

}