- Фантастика и фэнтези
- Ироническое фэнтези
- Стимпанк
- Детективная фантастика
- Киберпанк
- Попаданцы
- LitRPG
- Космоопера
- Технофэнтези
- Городская фантастика
- Русское фэнтези
- Юмористическая фантастика
- Космическая фантастика
- Боевое фэнтези
- Эпическая фантастика
- Зарубежная фантастика
- Книги магов
- Мистика
- Разная фантастика
- Разное фэнтези
- Любовное фэнтези
- Романтическая фантастика
- Городское фентези
- Историческая фантастика
- Историческое фэнтези
- Социально-философская фантастика
- Сказочная фантастика
- Иностранное фэнтези
- Романтическое фэнтези
- Ироническая фантастика
- Ужасы и Мистика
- Постапокалипсис
- Героическая фантастика
- Фэнтези
- Научная Фантастика
- Социально-психологическая
- Альтернативная история
- Боевая фантастика
- Разная литература
- Пословицы, поговорки
- Шахматы
- Визуальные искусства
- Фанфик
- Авто и ПДД
- Военное
- Отраслевые издания
- Гиды, путеводители
- Зарубежная образовательная литература
- Военная история
- Цитаты из афоризмов
- Современная литература
- Великолепные истории
- Начинающие авторы
- Современная зарубежная литература
- Боевые искусства
- Изобразительное искусство, фотография
- Кино
- Литература 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