- •Содержание
- •Введение
- •1. Основные понятия языка Java иUml
- •Простое приложение
- •Простой апплет
- •Классы и объекты
- •Базовые типы данных
- •Операторы
- •If (obj instanceof java.Awt.Font) {/*операторы*/}
- •Операторы управления
- •UmLкак язык описания объектно-ориентированных программ
- •2. Библиотека стандартаJava_se Наследование
- •Использование super и this
- •Абстрактные классы и интерфейсы
- •Переопределение методов
- •Перегрузка методов
- •Полимофизм и расширяемость
- •Статические методы и полиморфизм
- •Внутренние (inner) классы
- •Вложенные классы (nested)
- •Анонимные классы
- •Использование библиотек классов Файлы. Потоки ввода/вывода
- •Обработка исключительных ситуаций
- •Коллекции
- •Графические интерфейсы пользователя
- •События и их обработка
- •Элементы управления
- •2. Библиотека стандартаJava_ee
- •ТехнологииJsp
Элементы управления
Элементы управления из пакета AWTявляются наследниками классаComponent. При использовании пакетаSwingкомпоненты наследуются от классаJComponent, производного от классаContainer.
Текстовые метки Label,JLabelсоздаются с помощью конструкторовLabel(),Label(String str),Label(String str,int alignment).
Списки – List иJList.
Полосы прокрутки – ScrollBarиJScrollBar.
Однострочная область ввода – TextFieldиJTextField.
Многострочная область ввода – TextAreaиJTextArea.
Кнопки – ButtonиJButton.
Кнопки – CheckBox и JCheckBox, RadioButton и JRadioButton.
От AbstractButtonнаследуются два основных кнопочных класса:JButtonиJToggleButton. Первый служит для создания обычных кнопок с разнообразными возможностями, а второйдля создания радиокнопок (классJRadioButton) и отмечаемых кнопок (классJCheckBox). Помимо названных отAbstractButtonнаследуется пара классовJCheckBoxMenuItemиJRadioButtonMenuItem, используемых для организации тех меню, пункты которых должны быть оснащены отмечаемыми радиокнопками.
Процесс создания кнопок достаточно прост: вызывается конструктор JButtonс меткой, которую нужно поместить на кнопке. КлассJButtonбиблиотеки Swing для создания обычных кнопок предлагает несколько различных конструкторов: JButton(), JButton(String s), JButton(Icon i), JButton(String s, Icon i).
Если используется конструктор без параметров, то получится абсолютно пустая кнопка. Задав текстовую строку, получим кнопку с надписью. Для создания кнопки с рисунком конструктору передается ссылка на класс пиктограммы. Класс JButtonсодержит несколько десятков методов.JButtonэто компонент, который автоматически перерисовывается как часть обновления. Это означает, что не нужно явно вызывать перерисовку кнопки, как и любого управляющего элемента; он просто помещается на форму и сам автоматически заботится о своей перерисовке. Чтобы поместить кнопку на форму, необходимо выполнить это в методеinit(). Каждый раз, когда кнопка нажимается, генерируется action-событие. Оно посылается блокам прослушивания, зарегистрированным для приема события от этого компонента.
// пример # 7 : кнопка и ее методы : MyButtons.java
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
public class MyButtons extends JApplet
implements ActionListener {
String msg;
JButton yes, maybe;
JLabel lbl;
JTextField txt;
public void init() {
yes = new JButton("yes");
yes.setActionCommand("yes"); //определение команды
maybe = new JButton("may be");
lbl = new JLabel("");
txt = new JTextField(10);
Container c = getContentPane();
c.setLayout(new FlowLayout());
c.add(yes);
c.add(maybe);
c.add(lbl);
c.add(txt);
yes.addActionListener(this);
maybe.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
String str =
((JButton) e.getSource()).getText();
if (str.equals("yes"))
msg = "Button <yes> is pressed”;
else
msg = " Button <may be> is pressed ";
lbl.setText(msg);
String name =
e.getActionCommand(); // извлечение команды
txt.setText(name);
}
}
Рис. 13.7. Апплет с кнопками, меткой и текстовым полем
Метод getSource()возвращает ссылку на объект, явившийся источником события, который преобразуется в объектJButton. Метод getText() в виде строки извлекает текст, который изображен на кнопке, и помещает его с помощью методаsetText()объектаJLabel в объектlbl. При этом определяется, какая из кнопок была нажата.
Команда, ассоциированная с кнопкой, возвращается вызовом метода getActionCommand() класса ActionEvent, экземпляр которого содержит всю информацию о событии. Для отображения результата нажатия кнопки использован компонент JTextField, представляющий собой поле, где можетбыть размещен и изменен текст. Хотя есть несколько способов создания JTextField, самым простым является сообщение конструктору нужной ширины текстового поля. Как только JTextField помещается на форму, можно изменять содержимое, используя метод s