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

Для обработки событий от линеек прокрутки (прокрутка вниз и вверх на одну строку, прокрутка вниз и вверх на одну страницу) требуется внести в метод handleEvent() контейнера, содержащего эти линейки, следующий фрагмент:

public boolean handleEvent(Event evt)

{ switch(evt.id)

{ default:// передача сообщения на обработку

// методу базового класса

return super.handleEvent(evt);

case Event.SCROLL_LINE_UP:

// процесс обработки событий линейки прокрутки

if(evt.target instanceof Scrollbar)

{// получаем ссылку на линейку, вызвавшую событие

Scrollbar scrlbar=(Scrollbar)evt.target;

// проверка, от какой именно линейки пришло

// событие и обработка этого события от

// конкретной линейки

.............................................

// если событие обработано, иначе return false

return true; }

break;

case Event.SCROLL_LINE_DOWN:

// процесс обработки событий линейки прокрутки

if(evt.target instanceof Scrollbar)

{// получаем ссылку на линейку, вызвавшую событие

Scrollbar scrlbar=(Scrollbar)evt.target;

// проверка, от какой именно линейки пришло

// событие и обработка этого события от

// конкретной линейки

.............................................

// если событие обработано, иначе return false

return true; }

break;

case Event.SCROLL_PAGE_UP:

// процесс обработки событий линейки прокрутки

if(evt.target instanceof Scrollbar)

{// получаем ссылку на линейку, вызвавшую событие

Scrollbar scrlbar=(Scrollbar)evt.target;

// проверка, от какой именно линейки пришло

// событие и обработка этого события от

// конкретной линейки

.............................................

// если событие обработано, иначе return false

return true; }

break;

case Event.SCROLL_PAGE_DOWN:

// процесс обработки событий линейки прокрутки

if(evt.target instanceof Scrollbar)

{// получаем ссылку на линейку, вызвавшую событие

Scrollbar scrlbar=(Scrollbar)evt.target;

// проверка, от какой именно линейки пришло

// событие и обработка этого события от

// конкретной линейки

.............................................

// если событие обработано, иначе return false

return true; }

break; }

return true; }

2.6 Метки

Метки-надписи (класс Label) - это простейшие устройства. Они не порождают событий, они используются просто для размещения на экране строк текста. Преимущество использования этих элементов управления для вывода текста перед выводом текста методом drawString() класса Graphics заключается в том, что эти элементы управления (вместе с их содержимым) имеют способность перемещаться по экрану всякий раз, когда изменяется размер контейнера, содержащего эти метки.

Приведем примеры создания меток (или надписей):

// для метки задается выравнивание по левому краю

add(Label lbl1=new Label("1st string", Label.LEFT);

// для метки задается выравнивание по правому краю

add(Label lbl1=new Label("1st string", Label.RIGHT);

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

add(Label lbl1=new Label("1st string", Label.CENTER);

Для изменения установок меток служат методы: setAlignment() - устанавливает режим выравнивания, setText() - устанавливает текст надписи. Для получения текущего режима выравнивания используется метод getAlignment(), а для определения текста надписи - метод getText().

2.7 Текстовые компоненты

Поля редактирования типа TextArea может использоваться как для вывода, так и для ввода и редактирования текста. Поля редактирования этого типа состоят из нескольких строк текста и имеют полосы прокрутки. Напротив, поля редактирования типа TextField состоят из одной строки и не имеют полос прокрутки. Оба этих класса являются наследниками класса TextComponent и, за исключением упомянутых различий, во всем аналогичны друг другу.