Что такое Java Операции присваивания Массивы Java-файлы Работа с массивами Классы-адаптеры Изображение и звук Анимация Подпроцессы-демоны Печать в Java Работа по протоколу TCP Сервлеты Java на сервере Методы улучшения визуализации

Goto

Другая не слишком хорошая конструкция традиционных языков программирования - оператор goto, предназначенный для передачи управления. Всем нам на первых занятиях по программированию говорили, что можно обойтись без этого оператора, ухудшающего структуру программы и делающего ее неудобочитаемой. До того, как в C++ появился механизм работы с исключениями, goto активно использовался для выхода из циклов в исключительных ситуациях.

В Java оператора goto нет. В ней есть зарезервированное ключевое слово goto, но это сделано лишь во избежание возможной путаницы - для того, чтобы удержать программистов от его использования. Зато в Java есть операторы continue и break с меткой, восполняющие отсутствие goto в тех единственных случаях, когда использование последнего было бы оправдано. А мощный хорошо определенный встроенный в Java механизм исключений делает ненужным использование goto во всех остальных ситуациях.


Основные компоненты

Графическая библиотека AWT предлагает более двадцати готовых компонентов. Они показаны на рис. 8.2. Наиболее часто используются подклассы класса Component: классы Button, Canvas, Checkbox, Choice, Container, Label, List, Scrollbar, TextArea, TextField, Panel, ScrollPane, Window, Dialog, FileDialog, Frame.

Еще одна группа компонентов — это компоненты меню — классы Menuitem, MenuBar, Menu, PopupMenu, CheckboxMenuItem. Мы рассмотрим ИХ В главе 13.

Забегая вперед, для каждого компонента перечислим события, которые в нем происходят. Обработку событий мы разберем в главе 12.

Начнем изучать эти компоненты от простых компонентов к сложным и от наиболее часто используемых к применяемым реже. Но сначала посмотрим на то общее, что есть во всех этих компонентах, на сам класс component.

Класс Component

Класс component — центр библиотеки AWT — очень велик и обладает большими возможностями. В нем пять статических констант, определяющих размещение компонента внутри пространства, выделенного для компонента в содержащем его контейнере: BOTTOM_ALIGNMENT, CENTER_ALIGNMENT,

LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT, И ОКОЛО СОТНИ МеТОДОВ.

Большинство методов— это методы доступа getxxx(), isxxx(), setxxx(). Изучать их нет смысла, надо просто посмотреть, как они используются в подклассах.

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

Компонент всегда занимает прямоугольную область со сторонами, параллельными сторонам экрана и в каждый момент времени имеет определенные размеры, измеряемые в пикселах, которые можно узнать методом getsizeo, возвращающим объект класса Dimension, или целочисленными методами getHeighto и getwidtho, возвращающими высоту и ширину прямоугольника. Новый размер компонента можно установить из программы методами setSize(Dimension d) или setSize(int width, int height), если это допускает менеджер размещения контейнера, содержащего компонент.

У компонента есть предпочтительный размер, при котором компонент выглядит наиболее пропорционально. Его можно получить методом getPreferredSizef) В виде объекта Dimension.

Компонент обладает минимальным и максимальным размерами. Их возвращают методы getMinimumSize() И getMaximumSize () В виде объекта Dimension.

В компоненте есть система координат. Ее начало — точка с координатами (0, 0) — находится в левом верхнем углу компонента, ось Ох идет вправо, ось Оу — вниз, координатные точки расположены между пикселами.

В компоненте хранятся координаты его левого верхнего угла в системе координат объемлющего контейнера. Их можно узнать методами getLocation (), а изменить — методами setLocationO, переместив компонент в контейнере, если это позволит менеджер размещения компонентов.

Можно выяснить сразу и положение, и размер прямоугольной области компонента методом getBounds (), возвращающим объект класса Rectangle, и изменить разом и положение, и размер компонента методами setBounds (), если это позволит сделать менеджер размещения.

Компонент может быть недоступен для действий пользователя, тогда он выделяется на экране обычно светло-серым цветом. Доступность компонента можно проверить логическим методом isEnabiedo, а изменить— методом setEnabled(boolean enable).

Для многих компонентов определяется графический контекст — объект класса Graphics, — который управляется методом paint (), описанным в предыдущей главе, и который можно получить методом getGraphics ().

В контексте есть текущий цвет и цвет фона — объекты класса color. Цвет фона можно получить методом getBackground{), а изменить— методом setBackground(Color color). Текущий цвет можно получить методом getForeground(), а изменить — методом setForeground(Color color).

В контексте есть шрифт — объект класса Font, возвращаемый методом

getFont() И изменяемый Методом setFont(Font font) .

В компоненте определяется локаль — объект класса Locale. Его можно получить методом getLocale(), изменить — методом setLocale(Locale locale).

В компоненте существует курсор, показывающий положение мыши, — объект класса Cursor. Его можно получить методом getcursor (), изменяется форма курсора в "тяжелых" компонентах с помощью метода setcursor(Cursor cursor). Остановимся на этом классе подробнее.

Отличия Java от C++

В большинстве книг по C++ вы найдете такое же описание достоинств объектно-ориентированного программирования и доказательства того, что это - очередная ступень в развитии индустрии программирования. В чем же беда C++ и почему была создана Java?

Фактически, большинство архитектурных решений, принятых при создании Java, было продиктовано желанием предоставить синтаксис, сходный с С и C++. В Java используются практически идентичные соглашения для объявления переменных, передачи параметров, операторов и для управления потоком выполнением кода. В Java добавлены все хорошие черты C++, но исключены недостатки последнего.


Warning: require_once() [function.require-once]: Filename cannot be empty in /pub/home/andrekon21/obuvoptom96/authority7.php on line 5

Fatal error: require_once() [function.require]: Failed opening required '' (include_path='.:/usr/local/php5.2/share/pear') in /pub/home/andrekon21/obuvoptom96/authority7.php on line 5