Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 157

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 151 152 153 154 155 156 < 157 > 158 159 160 161 162 163 .. 259 >> Следующая

Менеджеры размещения контролируют, как выполняется позиционирование компонентов, добавляемых в окно, а также их упорядочение. Если пользователь изменяет размер окна, менеджер размещения переупорядочивает компоненты в новой области так, чтобы они оставались видимыми и в тоже время сохранили свои позиции относительно друг друга.
В Java насчитывается пять таких менеджеров, но ш рассмотрим только три из них: FlowLayout, BorderLayout и GridLayout. Все они реализуют интерфейс bayoutManager, как показано на рис. 10.1. Этот интерфейс входит в пакет aw и становится доступным при его импортировании. Рассмотрим, как же внедряется менеджер размещения:
setLayout (new Manager (parameters) ) ;
Один из пяти менеджеров размещения реализуется как объект; его экземпляр создается и передается методу setLayout текущего контейнера (например, Frame), который затем фиксирует, как должны быть расположены компоненты.
По умолчанию в Java-npoграмме применяется менеджер размещения BorderLayout, но для наших целей больше подходит FlowLayout, Он также является менеджером по умолчанию для апплетов. Вот пример назначения менеджера размещения:
setLayout (new FlowLayout(FlowLayout,CENTER,horigap,vertigap));
Первый параметр указывает1, что элементы, добавляемые во фрейм, должны быть помещены в центр (они также могут быть выровнены по левому или правому краю). Параметры horigap и vertigap — это константы, которые служат для указания минимального расстояния (в пикселях) между элементами во фрейме. Все эти параметры являются дополнительными, а константа CENTER назначена по умолчанию. Примеры использования менеджера FlowLayout вы найдете в следующих программах.
Реакция на нажатие кнопки
Мы должны не только предусмотреть возможность закрытия окна, но и заставить программу реагировать на нажатие кнопки. В пакете awt .event наряду со слушателем windowListener определен также actionListener. Этот интерфейс-слушатель имеет только один метод для реализации — actionPer formed. Поэтому кнопки будут связаны посредством ссылок со слушателем actionListener и иметь версии метода act ion Ре г formed. Установка ссылки выполняется в конструкторе немедленно после того, как кнопка объявляется и добавляется в контейнер. Три оператора для кнопки запуска {submitButton) выглядят следующим образом:
submitButton = new Button ("Запуск*1) ; tsuomitButton) submitButton.addActionListener fthis);
356
I
Глава 10. Графика и пользовательские интерфейсы
Ссылка на this указывает, что текущий фрейм отвечает за определение метода actionPerformed. На схеме для такой ссылки полезно выделить компоненты GUI и слушатели из массы других классов. В качестве обозначений на схеме мы выбрали для компонента — прямоугольник с двойной рамкой, для слушателя — конус, а для обработчика событий — стандартный символ метода (рис. 10.7).
Метод act ion Fe г formed имеет один параметр — объект Act і о пЕ vent, к которому можно обратиться, чтобы выяснить, совпадает ли он с одной из кнопок. Вот б какой последовательности выполняется опрос:
ж
хяо
V
:4v-v^ •
-.\v.\w _
и, ' • ¦
Л>. ¦> Л
г.
-$У
ж
Ц.Ч
public void actionPerformed (ActionEvent ej if [e.getSource () = buttorj^^el) { sta tements
> * else
if e.getSource О — buttonname2} { statements
> // и т,д.
}
Рис. 10.7. Блок-схема, на шторой показано связь между кнопкой, слушателем
и обработчиком событий
Предположим, несколько кнопок имеют различные строковые метки, Единственный способ отличить их друг от друга состоит в использовании последовательности операторов if-else, учитывающих все варианты. Нажатие кнопки — это только одно из событий, поэтому схема, подобная описанной, может пригодиться нам в дальнейшем. Обработке других событий посвящен раздел 11.2*
и
Применение отступов
До этого времени при написании кода мы использовали отступы традиционным способом, унаследованным от более старых языков, таких как Pascal и С: отступ создавался каждый раз при вводе нового метода или блока операторов. Операторы внутри одного блока имели одинаковые отступы.
При программировании GUI часто встречаются очень длинные последовательности операторов, вовлеченных в вывод компонентов на экран* Каждый компонент может иметь три или более оператора, которые ассоциированы с ним* Не существует установленного порядка, согласно которому должны выполняться операторы, но обычно мы работаем с каждым компонентом по очереди и следуем схеме создание-ссьигка-добакление. Исходя из этого для программ, разработанных средствами Java, была внедрена новая схема использования отступов, в соответствии с которой создание компонента рассматривается как введение нового уровня. Благодаря этому легко увидеть все операторы, относящиеся к данному компоненту, Этот принцип уже использовался в приведенном выше примере (добавление кнопки submitButton) и применяется также в следующих двух упражнениях.
Предыдущая << 1 .. 151 152 153 154 155 156 < 157 > 158 159 160 161 162 163 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.