Читать «Java: руководство для начинающих» онлайн - страница 341

Герберт Шилдт

Рис. 15.4. Окно, отображаемое при выполнении программы CBDemo

Наибольший интерес в рассматриваемом здесь примере представляет метод itemStateChanged (), предназначенный для обработки событий от элементов (в данном случае — флажков). Он выполняет две функции: во-первых, сообщает, установлен или сброшен флажок; а во-вторых, отображает перечень установленных флажков. В начале этого метода определяется ссылка на компонент, сформировавший событие ItemEvent. Это происходит в следующей строке кода: JCheckBox cb = (JCheckBox) ie.getltem();

Приведение к типу JCheckBox необходимо потому, что метод getltem () возвращает ссылку на объект типа Object. Далее метод itemStateChanged () обращается к методу isSelected () по ссылке cb, чтобы определить текущее состояние флажка. Если метод isSelected () возвращает логическое значение true, значит, флажок установлен, а логическое значение false соответствует сброшенному состоянию флажка. Затем с помощью метки j labChanged отображаются сведения о выполненном действии.

И наконец, метод itemStateChanged () проверяет состояние каждого флажка и формирует символьную строку с именами установленных флажков. Эта символьная строка отображается в окне программы с помощью метки j labSelected. Работа с компонентом Jlist

Последним в этой главе будет рассмотрен компонент JList. Он является основным классом Swing для работы со списками и позволяет выбирать один или несколько элементов из списка. И хотя элементы списка являются символьными строками, это не мешает создать список, включающий практически любые объекты, которые могут быть отображены на экране. Компонент JList настолько широко применяется в реальных программах на Java, что его трудно было бы не заметить в них прежде.

Раньше элементы списка были представлены в компоненте JList в виде ссылок на объекты типа Object. А после выпуска версии JDK 7 компонент JList стал обобщенным и теперь объявляется следующим образом: class JList<E>

где Е обозначает тип элементов списка. Таким образом, в компоненте JList теперь обеспечивается типовая безопасность.

На заметку Далее рассматривается обобщенный вариант компонента JList и демонстрируется пример его применения. Поэтому если вы пользуетесь компилятором более ранней версии, чем JDK 7, вам придется выбрать предыдущий, необобщенный вариант компонента JList.

В классе компонента JList предоставляется ряд конструкторов. Один из них имеет следующий вид: JList (Е[] элементы)

Этот конструктор создает компонент JList со списком элементов, хранящихся в массиве, на который указывает параметр элементы.

Компонент JList и сам позволяет решить немало задач построения списков, но чаще всего он помещается в контейнер JScrollPane, автоматически обеспечивающий прокрутку своего содержимого. Ниже приведен конструктор этого контейнера. JScrollPane(Component компонент)