Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Metodichka_Po_Tp.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.44 Mб
Скачать

2.5 Полосы прокрутки

Полосы прокрутки к спискам, меню выбора и полям редактирования при необходимости добавляются автоматически. Но можно использовать их и как независимые, отдельные компоненты для обеспечения прокрутки необходимой информации. Создание линейки прокрутки (класс Scrollbar) и добавление ее в контейнер осуществляется, например, следующим образом:

Scrollbar

scrlbar=new Scrollbar.HORIZONTAL,25,15,1,100);

add(scrlbar);

Здесь создается горизонтальная линейка прокрутки, ширина которой на экране равна 15. Начальное значение (текущее положение бегунка линейки прокрутки) установлено равным 25, минимальное возможное значение равно 1, а максимальное - 100.

При помощи методов изменять установки линейки прокрутки. Метод setValue() изменяет текущее положение бегунка, а метод setValues() изменяет параметры полосы прокрутки, задаваемые при ее создании. Для установки строчного и страничного инкремента полосы прокрутки используются методы setLineIncrement() и setPageIncrement().

Для получении информации о линейке используются следующие методы. Метод getValue() возвращает текущее положение бегунка, методы getMaximum() и getMinimum() - возвращают максимальное и минимальное значение для полосы прокрутки. Для получения строчного и страничного инкремента полосы прокрутки используются методы getLineIncrement() и getPageIncrement().

Ширину полосы прокрутки на экране (величину ее видимой части) можно узнать методом getVisible(), а ориентация полосы прокрутки определяется методом getOrientation().

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

Для обработки событий от линеек прокрутки (прокрутка вниз и вверх на одну строку, прокрутка вниз и вверх на одну страницу) требуется внести в метод 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; }

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]