- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Java: руководство для начинающих (ЛП) - Шилдт Герберт
Шрифт:
Интервал:
Закладка:
Добавьте в утилиту сравнения файлов, созданную в примере для опробования 15.1,флажок со следующей пояснительной надписью: Show position of mismatch (Показывать место несовпадения). Если этот флажок установлен, программа должна отображать место, в котором обнаружено первое расхождение в содержимом сравниваемых файлов./Пример для опробования 15-1.Утилита сравнения файлов, создаваемая на основе Swing.В этой версии присутствует флажок для установки режима показаместа первого несовпадения содержимого сравниваемых файлов.Для компиляции этой утилиты требуется JDK 7или более поздняя версия данного комплекта./import java.awt.;import java.awt.event.;import javax.swing.;import java.io.;class SwingFC implements ActionListener {JTextField jtfFirst; // Переменная для хранения имени первого файлаJTextField jtfSecond; // Переменная для хранения имени второго файлаJButton jbtnComp; // Кнопка для сравнения файловJLabel jlabFirst, jlabSecond; // Подсказки для пользователяJLabel jlabResult; // Сведения о результатах и сообщения об ошибкахJCheckBox jcbLoc; // флажок для показа места первого несовпаденияфайловSwingFC () {// создать новый контейнер JFrameJFrame jfrm = new JFrame("Compare Files");// установить диспетчер компоновки FlowLayoutj frm.setLayout(new FlowLayout());// задать исходные размеры рамки окнаjfrm.setSize(200, 190);// завершить программу после закрытия окнаj frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// создать поля для ввода имен файловjtfFirst = new JTextField(14);jtfSecond = new JTextField(14);// установить команды действия для полей ввода текстаjtfFirst.setActionCommand("fileA");jtfSecond.setActionCommand("fileB");// создать кнопку CompareJButton jbtnComp = new JButton("Compare");// добавить приемник событий действия от кнопки ComparejbtnComp.addActionListener(this) ;// создать меткиjlabFirst = new JLabel("First file: ");jlabSecond = new JLabel("Second file: ");jlabResult = new JLabel("");// создать флажокjcbLoc = new JCheckBox("Show position of mismatch");// добавить компоненты на панели содержимогоjfrm.add(jlabFirst);jfrm.add(jtfFirst) ;jfrm.add(jlabSecond) ;jfrm.add(jtfSecond);
j f rm.add(j cbLoc);Приложение А. Ответы на вопросы для самопроверки 599.jfrm.add(jbtnComp);jfrm.add(jlabResult);// отобразить рамку окнаj frm.setVisible(true);}// сравнить файлы после нажатия кнопки Comparepublic void actionPerformed(ActionEvent ae) {int i=0, j=0;// сначала убедиться, что введены имена обоих файловif(jtfFirst.getText().equals("")) {jlabResult.setText("First file name missing.");return;.}if(jtfSecond.getText().equals("")) {jlabResult.setText("Second file name missing.");return;// сравнить файлы, используя оператор try с ресурсамиtry (FilelnputStream fl = new FilelnputStream(jtfFirst.getText());FilelnputStream f2 = new FilelnputStream(jtfSecond.getText()))// проверить содержимое каждого файлаdo {i = f1.read();j = f2.read();if(i != j) break;} whiled != -1 && j != -1) ;if(i != j) (if(jcbLoc.isSelected())jlabResult.setText("Files differ at location " + count);elsejlabResult.setText("Files are not the same.");}elsejlabResult.setText("Files compare equal.");} catch(IOException exc) {jlabResult.setText("File Error");}}public static void main(String args[]) {// создать рамку окна в потоке диспетчеризации событийSwingUtilities.invokeLater(new Runnable() {public void run() {new SwingFC();}});}}
Измените программу List Demo таким образом, чтобы она допускала выбор нескольких элементов из списка.// Демонстрация выбора нескольких элементов из списка// с помощью компонента Jlist.// Для компиляции этой программы требуется JDK 7// или более поздняя версия данного комплекта.import javax.swing.;import javax.swing.event;import java.awt.;import java.awt.event.*;class ListDemo implements ListSelectionListener {JList jlst;JLabel jlab;JScrollPane jscrlp;// создать массив именString names[] = { "Sherry", "Jon", "Rachel","Sasha", "Josselyn", "Randy","Tom", "Mary", "Ken","Andrew", "Matt", "Todd" };ListDemo() {// создать новый контейнер JFrameJFrame jfrm = new JFrame("JList Demo");// установить диспетчер компоновки FlowLayoutj frm.setLayout(new FlowLayout());// задать исходные размеры рамки окнаjfrm.setSize(200, 160);// завершить программу после закрытия окнаj frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// создать компонент JListjlst = new JList(names);// Удалив следующую строку кода, можно задать режим выбора// нескольких элементов из списка, поскольку этот режим// устанавливается для компонента JList по умолчанию.// jlst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// добавить список на панели прокрутки,jscrlp = new JScrollPane(jlst);// задать предпочтительные размеры панели прокруткиjscrlp.setPreferredSize(new Dimension(120, 90));Приложение А. Ответы на вопросы для самопроверки// создать метку для отображения результатов выбора из списка,jlab = new JLabel("Please choose a name");// добавить обработчик событий, связанных с выбором из спискаjlst.addListSelectionListener(this);// добавить список и метку на панели содержимогоjfrm.add(jscrip);jfrm.add(jlab);// отобразить рамку окнаj frm.setVisible(true);}// обработать события, связанные с выбором элементов из спискаpublic void valueChanged(ListSelectionEvent le) {// получить индексы тех элементов, выбор которых был сделан// или отменен в спискеint indices[] = j1st.getSelectedlndices();// отобразить результат выбора, если был выбран один// или несколько элементов из спискаif(indices.length != 0) {String who = "";// построить символьную строку из выбранных именfor(int i : indices)who += names[i] + " ";jlab.setText("Current selections: " + who);}else // иначе еще раз предложить сделать выборjlab.setText("Please choose a name");public static void main(String args[]) {// создать рамку окна в потоке диспетчеризации событийSwingUtilities.invokeLater(new Runnable() {public void run() {new ListDemo();}}) ;}}
Приложение Б Применение документирующих комментариев в Java
Как пояснялось в главе 1, в Java поддерживаются три вида комментариев. Первые два вида обозначаются символами //и/ /,а третий их вид называется документирующими комментариями. Такие комментарии начинаются символами /* и оканчиваются символами /. Документирующие комментарии позволяют включать сведения о программе в исходный код самой программы. Для извлечения этих сведений и последующего их преобразования в формат HTML-документа служит утилита j avadoc, входящая в состав JDK. Документирующие комментарии — удобный способ документирования прикладных программ. Вам, вероятно, уже встречалась документация, сформированная утилитой j avadoc, поскольку именно такой способ применяется для составления документации на библиотеку Java API.Дескрипторы javadoc
Утилита javadoc распознает и обрабатывает в документирующих комментариях следующие дескрипторы
ДескрипторОписание@authorОбозначает автора программы{0code}Отображает данные шрифтом, предназначенным для вывода исходного кода,не выполняя преобразований в формат HTML-документа@deprecatedУказывает на то, что элемент программы не рекомендован к применению{0docRoot}Указывает путь к корневому каталогу документацииGexceptionОбозначает исключение, генерируемое методом{@inheritDoc}Наследует комментарии от ближайшего суперкласса{@link}Вставляет ссылку на другую тему{@linkplain}Вставляет ссылку на другую тему, но ссылка отображается тем же шрифтом, чтои простой текст{@literal}Отображает данные, не выполняя преобразований в формат HTML-документа@paramДокументирует параметр метода@returnДокументирует значение, возвращаемое методом@seeУказывает ссылку на другую тему0serialДокументирует поле, упорядочиваемое по умолчаниюQserialDataДокументирует данные, записываемые методом writeObject () илиwriteExternal ()@serialFieldДокументирует компонент ObjectStreamField0sinceОбозначает версию, в которой были внесены определенные изменения@throwsТо же, что и дескриптор @exception{@value}Отображает значение константы, которая должна быть определена как полетипа static(AversionОбозначает версию классаДескрипторы, начинающиеся с символа @, называются автономными и помечаютстроку комментариев. А дескрипторы, заключенные в фигурные скобки, называютсяПриложение Б. Применение документирующих комментариев в Java 6Q5встраиваемыми и могут быть использованы в других дескрипторах. В документирующихкомментариях можно также использовать стандартные HTML-дескрипторы. Но некоторые HTML-дескрипторы, например дескрипторы заголовков, применять не следует, поскольку они могут испортить внешний вид HTML-документа, составляемого утилитойjavadoc.Что касается документирования исходного кода, то документирующие комментарииможно использовать для описания классов, интерфейсов, полей, конструкторов и методов. Но в любом случае документирующие комментарии должны предшествовать непосредственно описываемому элементу исходного кода. Одни дескрипторы, в том числе@see, @since и @deprecated, могут быть использованы для документирования любыхэлементов исходного кода, а другие — только для документирования соответствующихэлементов. Каждый дескриптор документирующих комментариев рассматривается далеепо отдельности.На заметкуДокументирующие комментарии можно также использовать для составления документациии краткого обзора разрабатываемого пакета, но делается это иначе, чем документирование исходного кода. Подробнее об этом можно узнать из документации на утилиту j avadoc.Дескриптор @author

