|
омощью класса Scrollbar вы можете создавать полосы просмотра, которые
используются, в частности, могострочными полями редактирования текста.
Класс TextComponent служит базовым для двух других классов - TextField и
TextArea. Первый из них предназначен для создания однострочных редакторов
текста, второй - для создания многострочных редкаторов текста.
Для того чтобы понять, как компоненты размещаются на поверхности окна аплета
системой Layout Manager, рассмотрим другую взаимосвязь классов Java, показанную
на рис. 5.2.
Рис. 5.2. Компоненты и контейнеры
Класс Component служит в качестве базового класса для класса Container.
Объекты этого класса, которые мы будем называть контейнерами, могут содержать
объекты классов Component и Container. Таким образом, внутри контейнеров могут
находиться компоненты и другие контейнеры.
Класс Applet, так же как и другие классы, произведенные от класса Container,
является контейнером. Это означает, что аплет может содержать в себе компоненты
(такие как органы управления) и контейнеры.
Заметим, что класс Applet наследуется от класса Container через класс Panel,
в котором определены методы системы Layout Manager. Настраивая соответствующим
образом Layout Manager, мы можем менять стратегию размещения компонент внутри
окна аплета.
В окне аплета вы можете создать несколько объектов класса Panel (панелей),
разделяющих окно на части. Для каждой такой панели можно установить свою
стратегию размещения компонент и контейнеров, что позволяет выполнять
достаточно сложную компоновку в окне аплета.
Теперь после такого краткого введения в контейнеры и компоненты мы перейдем
к описанию методов создания отдельных компонент.
Кнопки
Как мы уже говорили, стандартные кнопки создаются на базе класса Button.
Этот класс очень простой, поэтому мы приведем его определение полностью:
public class java.awt.Button
extends java.awt.Component
{
// -----------------------------------------------------
// Конструкторы
// -----------------------------------------------------
public Button();
public Button(String label);
// -----------------------------------------------------
// Методы
// -----------------------------------------------------
// Вызов метода createButton
public void addNotify();
// Получение надписи на кнопке
public String getLabel();
// Получение строки параметров, отражающей
// состоние кнопки
protected String paramString();
// Установка надписи на кнопке
public void setLabel(String label);
}
В классе Button определены два конструктора, первый из которых позволяет
создавать кнопку без надписи, а второй - кнопку с надписью. Обычно используется
именно второй конструктор.
Из методов класса 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,
содержащий всю информацию о событии. Вто
|
|