Читаем Java 7 полностью

Класс Container — прямой подкласс класса Component, и наследует все его методы. Кроме них основу класса составляют методы добавления компонентов в контейнер:

□ add(Component comp) — компонент comp добавляется в конец контейнера;

□ add(Component comp, int index) — компонент comp добавляется в позицию index в контейнере, если index == -1, то компонент добавляется в конец контейнера;

□ add(Component comp, Object constraints) — менеджеру размещения контейнера даются указания объектом constraints;

□ add(String name, Component comp) — компонент получает имя name.

Два метода удаляют компоненты из контейнера:

□ remove(Component comp) удаляет компонент с именем comp;

□ remove(int index) — удаляет компонент с индексом index в контейнере.

Один из компонентов в контейнере получает фокус ввода (input focus), на него направляется ввод с клавиатуры. Фокус можно переносить с одного компонента на другой и обратно клавишами и +. Компонент способен запросить фокус методом requestFocus () и передать фокус следующему компоненту методом transferFocus (). Компонент может проверить, имеет ли он фокус, своим логическим методом hasFocus ( ). Это методы класса Component.

Для облегчения размещения компонентов в контейнере определяется менеджер размещения (layout manager)- объект, реализующий интерфейс LayoutManager или его

подынтерфейс LayoutManager2. Каждый менеджер размещает компоненты в каком-то своем порядке: один менеджер расставляет компоненты в таблицу, другой норовит растащить компоненты по сторонам, третий просто располагает их один за другим, как слова в тексте. Менеджер определяет смысл слов "добавить в конец контейнера" и "добавить в позицию index".

В контейнере в любой момент времени может быть установлен только один менеджер размещения. В каждом контейнере есть свой менеджер по умолчанию, установка другого менеджера производится методом

setLayout(LayoutManager manager);

Менеджеры размещения мы рассмотрим подробно в следующей главе. В данной главе будем размещать компоненты вручную, отключив менеджер по умолчанию методом

setLayout(null).

События

Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при добавлении и удалении компонентов в контейнере происходит событие ContainerEvent.

Текстовая метка Label

Перейдем к рассмотрению конкретных компонентов. Самый простой компонент описывает класс Label.

Компонент Label — это строка текста, оформленная как графический компонент для размещения в контейнере. Текст можно поменять только методом доступа setText (String text), но не вводом пользователя с клавиатуры или с помощью мыши.

Создается объект этого класса одним из трех конструкторов:

□ Label () — пустой объект без текста;

□ Label (String text) — объект с текстом text, который прижимается к левому краю компонента;

□ Label (String text, int alignment) — объект с текстом text и определенным размещением в компоненте текста, задаваемого одной из трех констант: center, left, right.

Размещение можно изменить методом доступа setAlignment(int alignment).

Остальные методы, кроме методов, унаследованных от класса Component, позволяют получить текст getText () и размещение getAlignment (), а также установить текст методами

setText(String) и размещение setAlignment(int).

События

В классе Label происходят события класса Component: ComponentEvent, FocusEvent, KeyEvent, MouseEvent.

Кнопка Button

Немногим сложнее класс Button.

Компонент Button — это кнопка стандартного для данной графической системы вида с надписью, умеющая реагировать на щелчок кнопки мыши — при нажатии она "вдавливается" в плоскость контейнера, при отпускании — становится "выпуклой".

Два конструктора, Button ( ) и Button (String label), создают кнопку без надписи и с надписью label соответственно.

Методы доступа getLabel() и setLabel(String label) позволяют получить и изменить надпись на кнопке.

Главная функция кнопки — реагировать на щелчки мыши, и прочие методы класса обрабатывают эти действия. Мы рассмотрим их в главе 15.

События

Кроме событий класса Component — ComponentEvent, FocusEvent, KeyEvent, MouseEvent — при воздействии на кнопку происходит событие ActionEvent.

Кнопка выбора Checkbox

Немного сложнее класса Button класс Checkbox, создающий кнопки выбора.

Перейти на страницу:

Все книги серии В подлиннике

Java 7
Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др. Дано подробное изложение последней версии сервлетов, технологии JSP и библиотек тегов JSTL. Около двухсот законченных программ иллюстрируют рассмотренные приемы программирования. Приведена подробная справочная информация о классах и методах Core Java API.

Ильдар Шаукатович Хабибуллин

Программирование, программы, базы данных

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

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

Программирование, программы, базы данных