Смекни!
smekni.com

Общие представления о языке Java 5 (стр. 17 из 68)

Заготовка нового класса.

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

Добавление в класс метода.Шаг 1.

Щелчок правой клавиши мышки в области надписи Methods и выбор пункта Add Method… всплывающего окна приводит к появлению диалога, в котором можно путём установки галочек и выбора пунктов выпадающего меню задавать нужные параметры метода

.

Добавление в класс метода. Шаг 2.

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

2.13. Документирование исходного кода в Java

Одной из важнейших частей написания программного обеспечения является документирование создаваемого кода. В Java для этих целей применяется средство, обеспечивающее поддержку на уровне синтаксиса языка программирования – специализированные комментарии. Они начинаются с комбинации символов /** и заканчиваются комбинацией символов */

Часть комментариев автоматически создаёт среда разработки.

Пример:

/**

* Creates new form GUI_application

*/

Средством обработки внедрённых в исходный код комментариев и создания для класса справочных HTML-файлов является инструмент javadoc, входящий в состав JDK. Но в среде NetBeans удобнее пользоваться вызовом через главное меню: Build/Generate Javadoc for “…”.

Документационные комментарии бывают для:

· Пакетов (пока не функционируют).

· Классов.

· Интерфейсов.

· Пользовательских типов-перечислений (на уровне пакетов пока не функционируют, но можно использовать для типов, заданных в классах).

· Методов.

· Переменных.

Документационные комментарии пишутся непосредственно перед заданием соответствующей конструкции – пакета, класса, интерфейса, типа-перечисления, метода или переменной. Следует учитывать, что по умолчанию документация создаётся только для элементов, имеющих уровень видимости public или protected.

Пример фрагмента кода с документационными комментариями:

/**

* Пример приложения Java с документационными комментариями <br>

* В приложении заданы типы-перечисления Monthes и Spring и показано,

* как с ними работать.

* Кроме того, дан пример использования класса из другого пакета.

* @see enumApplication.Monthes Информация о типе-перечислении Monthes

* @see enumApplication.Spring

* @see enumApplication#m1

* @version Версия 0.1 Первоначальная версия, проверено при компиляции

* в среде NetBeans 5.5

* @author Вадим Монахов

*/

public class enumApplication extends javax.swing.JFrame {

int i=1;

/**

* Spring - задаёт перечисление из 3 весенних месяцев года: march,apr,may.

* <ul>

* <li>march

* <li>apr

* <li>may

* </ul>

* Идентификатор для марта записан отличающимся от соответствующего

* идентификатора в перечислении Monthes, а для апреля и мая записаны так

* же - чтобы подчеркнуть, что их пространства имён независимы.

*/

public enum Spring {march,apr,may};

/**

* Monthes - задаёт перечисление из 12 месяцев года: <br>

* jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec <br>

* (январь, февраль и т.д.)

*/

public enum Monthes {jan,feb,mar,apr,may,jun,jul,aug,sep,oct,nov,dec};

Spring spr1= Spring.apr, spr2;

/**

*Переменная, иллюстрирующая работу с перечислениями

*/

public Monthes m1,m2=Monthes.mar,m3;

Имеется два типа кода внутри блока документационного комментария – HTML-текст и метаданные (команды документации, начинающиеся с символа @ ). Если пишется обычный текст, он рассматривается как HTML-текст, поэтому все пробелы и переносы на новую строку при показе приводятся к одному пробелу. Для того, чтобы очередное предложение при показе начиналось с новой строки, следует вставить последовательность символов <br> , называющуюся тегом HTML. Возможно использование произвольных тегов HTML, а не только тега переноса на новую строку: теги неупорядоченного списка <ul> и <li>, теги гиперссылок, изображений и т.д. В то же время не рекомендуется использовать заголовки и фреймы, поскольку это может привести к проблемам – javadoc создаёт на основе документационного кода собственную систему заголовков и фреймов. Кроме того, при преобразовании в HTML-документ из документационного кода удаляются символы “*”, если они стоят на первом значимом месте в строке (символы пробелов не являются значимыми).

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

http://barsic.spbu.ru/ www/comlan/html_r.html

Команды документации (символы метаданных):

· @see (“смотри”) – применяется для создания в документе гиперссылок на другие комментарии. Можно использовать для любых конструкций (классов, методов и т.д. ). Формат использования: @see ИмяКласса – для класса; @see ИмяКласса.ИмяПеречисления – для типа-перечисления, заданного в классе; @see ИмяКласса#ИмяЧлена – для метода или переменной; для интерфейса – аналогично классу. При этом имя класса или интерфейса может быть либо коротким, либо квалифицировано именем пакета.

· @version (“версия”) – информация о версии. Используется для классов и интерфейсов. Формат использования: @version Информация о версии в произвольной форме.

· @author (“автор”) - Информация об авторе. Используется для классов и интерфейсов. Формат использования: @author Информация об авторе в произвольной форме. Может включать не только имя, но и данные об авторских правах, а также об электронной почте автора, его сайте и т.д.

· @since (“начиная с”) - Информация о версии JDK, начиная с которой введён или работоспособен класс или интерфейс. Формат использования: @since Информация в произвольной форме.

· @param (сокращение от parameter -“параметр”) - информация о параметре метода. Комментарий /** @param … */ ставится в месте декларации метода в списке параметров перед соответствующим параметром. Формат использования: @param ИмяПараметра Описание.

· @return (“возвращает”) - информация о возвращаемом методом значении и его типе. Формат использования: @return Информация в произвольной форме.

· @throws (“возбуждает исключение”) - информация об исключительных ситуациях, которые могут возбуждаться методом. Формат использования: @throws ИмяКлассаИсключения Описание.

· @deprecated (“устаревшее”) - информация о том, что данный метод устарел и в последующих версиях будет ликвидирован. При попытке использования таких методов компилятор выдаёт программисту предупреждение (warning) о том, что метод устарел, хотя и компилирует проект. Формат использования: @deprecated Информация в произвольной форме.

Признаком окончания команды документации является начало новой команды или окончание комментария.

Пример документации, созданной для пакета, из которого взят приведённый выше фрагмент кода:

Головная страница файлов документации

Страница описания элементов пакета java_enum_pkg

Страница описания класса enumApplication

Обратите внимание, что в краткой сводке (summary) приводятся только начальные строки соответствующей информации по элементам пакета или класса. Полную информацию можно прочитать после перехода по гиперссылке в описании соответствующего элемента. Поэтому важно, чтобы первые 2-3 строки информации содержали самые важные сведения.

2.14. Основные компоненты пакетов swing и awt

Пока мы научились работать только с формами, кнопками и всплывающими меню. Перечислим ещё ряд полезных компонентов.

Во-первых, следует остановиться на том, что в палитре компонентов NetBeans предлагается три категории компонентов: из библиотеки Swing (пакет swing), библиотеки AWT (пакет awt), и категория Beans. В Sun Java Studio Enterprise имеется ещё одна категория – Layouts, “менеджеры размещения”, - компоненты, отвечающие за способ расположения и выравнивания компонентов на форме.

Библиотека Swing является основной для большинства современных графических приложений Java. В ней предлагаются следующие компоненты (перечислены в том порядке, в каком они возникают в палитре компонентов):

Компонент Назначение компонента
1 JLabel “Метка” – вывод однострочного неформатированного текста
2 JButton “Кнопка” – кнопка с текстом и/или с картинкой
3 JToggleButton “Защёлкивающаяся кнопка” – кнопка с фиксацией. Может быть одной из нескольких таких кнопок в группе, в этом случае нажатие одной кнопки вызывает отпускание другой. Работа группы обеспечивается компонентом ButtonGroup, который должен быть перетащен на форму, а затем назначен свойству buttonGroup.
4 JCheckBox “Чекбокс” - пункт выбора с независимой фиксацией.
5 JRadioButton “Радиокнопка” - пункт выбора с зависимой фиксацией, должен быть одним из нескольких в группе. Работа группы обеспечивается компонентом ButtonGroup.
6 ButtonGroup Обеспечивает работу групп компонентов JToggleButton или JradioButton.
7 JComboBox “Комбобокс” – выпадающий список.
8 JList Прокручивающийся список.
9 JTextField “Текстовое поле” – однострочный пункт ввода и редактирования текста.
10 JTextArea “Текстовая область” – многострочный пункт ввода и редактирования текста.
11 JPanel “Панель” – группирующий компонент, позволяющий располагать на себе другие компоненты. Передвижение панели перемещает вместе с ней все расположенные на ней компоненты. По умолчанию свойство layout (“размещение”) установлено как FlowLayout – “в виде потока”. Для простых задач вместо этого компонента лучше использовать JLayeredPane.
12 JTabbedPane “Панель с закладками” – каждый положенный на неё компонент показывается в отдельной закладке. Чтобы разместить на одной закладке несколько компонентов, сначала положите на панель с закладками обычную панель. Для того, чтобы создать последующие закладки, выделите панель с закладками, вызовите правой кнопкой мыши всплывающее меню, пункт Add From Palette (“добавить из палитры”), и добавьте ещё одну панель или другой компонент.
13 JScrollBar Независимая полоса прокрутки. Используется редко – для программно управляемой прокрутки содержимого компонентов, для которых отсутствуют встроенные полосы прокрутки.
14 JScrollPane “Панель с полосами прокрутки”
15 JMenuBar “Меню формы” – предназначено для расположения в нём компонентов типа JMenu (заголовков меню).
16 JPopupMenu “Всплывающее меню” - предназначено для расположения в нём компонентов типа JMenuItem (пунктов меню).
17 JSlider "Ползунок". Используется для плавной регулировки числовых величин, а также связанных с ними программно регулируемых изменений.
18 JProgressBar “Прогрессбар” – полоса показа доли выполнения задачи. Показывает уровень, отражающий долю выполнения задачи
19 JSplitPane “Панель с разделителем” – панель, состоящая из двух частей, между которыми имеется линия разделителя, которую можно перетаскивать мышью, меняя взаимный размер частей.
20 JFormattedTextField “Поле ввода форматированного текста”
21 JPasswordField “Поле ввода пароля” – вводимый текст отображается звёздочками.
22 JSpinner “Спиннер” - поле ввода числа с кнопками увеличения/ уменьшения.
23 JSeparator “Сепаратор” – разделительная линия. Используется в декоративных целях для разделения рабочих областей формы и других группирующих компонентов.
24 JTextPane “Текстовая панель”. По умолчанию автоматически переносит текст на новую строку. А не располагает в одну строку с показом горизонтального скроллера, как это делает JTextArea.
25 JEditorPane “Панель текстового редактора”
26 JTree “Дерево” – показывает дерево, в котором каждая ветвь может быть с иконками и текстом, а узлы разворачиваются и сворачиваются.
27 JTable “Таблица” – показ текстовой таблицы. Имеет возможность заполнения значениями по умолчанию на этапе проектирования.
28 JToolBar “Тулбар” – панель инструментов. Обычно на нём размещают кнопки JToggleButton, для которых назначены иконки.
29 JInternalFrame “Дочернее окно” – окно многооконного приложения. Его можно перемещать в пределах родительского окна – главного окна приложения. В настоящее время такой стиль приложений практически не используется.
30 JLayeredPane “Панель с абсолютным позиционированием элементов”
31 JDesktopPane “Панель – рабочий стол”. Ещё один тип панели с абсолютным позиционированием элементов.
32 JOptionPane “Диалоговая панель” – предназначена для показа диалоговых форм. В отличие от большинства других компонентов работа идёт с помощью методов класса. Имеются вызовы диалогов:
  • С сообщением:
javax.swing.JOptionPane.showMessageDialog(null, "Кнопку нажали"); JOptionPane.showMessageDialog(null,"Привет!", "Заголовок сообщения", JOptionPane.INFORMATION_MESSAGE);
  • С подтверждением:
int option=javax.swing.JOptionPane.showConfirmDialog( null,"Продолжить?"); Проверка, какую кнопку нажали или диалог закрыли без осуществления выбора, осуществляется сравнением с константами javax.swing.JOptionPane.NO_OPTION, CANCEL_OPTION, CLOSED_OPTION, OK_OPTION, YES_OPTION
  • С предложением ввести значение:
String input=javax.swing.JOptionPane.showInputDialog( null,"Введите значение:"); - при отказе от ввода возвращается null. Первый параметр – имя формы, в которой показывается диалог. Если он null – используется форма по умолчанию (главная форма приложения). Существуют варианты указанных выше методов, позволяющие при вызове задавать дополнительные параметры диалога (заголовок, надписи на кнопках и др.).
33 JColorChooser “Диалог выбора цвета” – предназначен для выбора пользователем цвета.
34 JFileChooser “Диалог выбора файла” – предназначен для выбора пользователем файлов. Перед использованием требуется положить его на какую-нибудь диалоговую форму (JDialog, JFrame ) или какой-нибудь группирующий компонент формы.
35 JFrame “Экранная форма”. Показывается вызовом вида jFrame1.setVisible(true);
36 JDialog “Диалоговая форма”. Показывается вызовом вида jDialog1.setVisible(true);

Очень часто в приложении требуется вывести служебную информацию. В старых версиях Java для этого служил вызов System.out.println(“Текст сообщения”). В учебных проектах и при выводе отладочной информации этот метод до сих пор удобен. Но предоставлять таким образом информацию конечному пользователю представляется анахронизмом. Для выдачи пользователю информационного сообщения лучше использовать вызов