В этом десятом издании справочного пособия, полностью обновленном с учетом последней версии Java SE 9, поясняется, как разрабатывать, компилировать, отлаживать и выполнять программы на языке программирования Java. Это пособие составлено Гербертом Шилдтом, автором популярных во всем мире книг по языкам программирования, таким образом, чтобы охватить все языковые средства Java, включая синтаксис, ключевые слова, основные принципы объектно-ориентированного программирования, значительную часть прикладного интерфейса Java API, библиотеки классов, аплеты и сервлеты, компоненты JavaBeans, библиотеки AWT и Swing, а также продемонстрировать их применение на простых и наглядных примерах. Не обойдены вниманием и новые средства, появившиеся в версии Java SE 9, в том числе модули и утилита JShell.
Author(s): Шилдт Герберт
Edition: 10-е изд.
Publisher: Диалектика
Year: 2018
Language: Russian
Pages: 1488
City: М.
Предисловие
Книга для всех программистов
Структура книги
Исходный код примеров, доступный в Интернете
Особые благодарности
Дополнительная литература
От издательства
Часть I. Язык Java
Глава 1. История и развитие языка Java
Происхождение Java
Зарождение современного программирования: язык С
Следующий этап: язык C++
Предпосылки к созданию Java
Создание языка Java
Связь с языком C#
Каким образом язык Java повлиял на Интернет
Аплеты на Java
Безопасность
Переносимость
Чудо Java: байт-код
Выход за пределы аплетов
Сервлеты: серверные программы на Java
Терминология Java
Простота
Объектная ориентированность
Надежность
Многопоточность
Архитектурная нейтральность
Интерпретируемость и высокая производительность
Распределенность
Динамичность
Эволюция языка Java
Версия Java SE 9
Культура нововведений
Глава 2. Краткий обзор Java
Объектно-ориентированное программирование
Две парадигмы
Абстракция
Три принципа ООП
Первый пример простой программы
Ввод кода программы
Компиляция программы
Подробный анализ первого примера программы
Второй пример короткой программы
Два управляющих оператора
Условный оператор i f
Оператор цикла for
Применение блоков кода
Вопросы лексики
Пробелы
Идентификаторы
Литералы
Комментарии
Разделители
Ключевые слова Java
Библиотеки классов Java
Глава 3. Типы данных, переменные н массивы
Java — строго типизированный язык
Примитивные типы
Целые числа
Тип byte
Тип short
Тип int
Тип long
Числа с плавающей точкой
Тип float
Тип double
Символы
Логические значения
Подробнее о литералах
Целочисленные литералы
Литералы с плавающей точкой
Логические литералы
Символьные литералы
Строковые литералы
Переменные
Объявление переменной
Динамическая инициализация
Область видимости и срок действия переменных
Преобразование и приведение типов
Автоматическое преобразование типов в Java
Приведение несовместимых типов
Автоматическое продвижение типов в выражениях
Правила продвижения типов
Массивы
Одномерные массивы
Многомерные массивы
Альтернативный синтаксис объявления массивов
Введение в символьные строки
Глава 4. Операции
Арифметические операции
Основные арифметические операции
Операция деления по модулю
Составные арифметические операции с присваиванием
Операции инкремента и декремента
Поразрядные операции
Поразрядные логические операции
Сдвиг влево
Сдвиг вправо
Беззнаковый сдвиг вправо
Поразрядные составные операции с присваиванием
Операции отношения
Логические операции
Укороченные логические операции
Операция присваивания
Тернарная операция ?
Предшествование операций
Применение круглых скобок
Глава 5. Управляющие операторы
Операторы выбора
Условный оператор if
Оператор switch
Операторы цикла
Цикл while
Цикл do-while
Цикл for
Вложенные циклы
Операторы перехода
Применение оператора break
Применение оператора continue
Оператор return
Глава 6. Введение в классы
Основы классов
Общая форма класса
Простой класс
Объявление объектов
Подробное рассмотрение операции new
Присваивание переменным ссылок на объекты
Введение в методы
Ввод метода в класс Box
Возврат значений
Ввод метода, принимающего параметры
Конструкторы
Параметризированные конструкторы
Ключевое слово this
Сокрытие переменных экземпляра
Сборка “мусора”
Класс Stack
Глава 7. Подробное рассмотрение классов и методов
Перегрузка методов
Перегрузка конструкторов
Применение объектов в качестве параметров
Подробное рассмотрение особенностей передачи аргументов
Возврат объектов
Рекурсия
Введение в управление доступом
Ключевое слово static
Ключевое слово final
Еще раз о массивах
Вложенные и внутренние классы
Краткий обзор класса String
Применение аргументов командной строки
Аргументы переменной длины
Перегрузка методов с аргументами переменной длины
Аргументы переменной длины и неоднозначность
Глава 8. Наследование
Основы наследования
Доступ к членам класса и наследование
Практический пример наследования
Переменная из суперкласса может ссылаться на объект подкласса
Ключевое слово super
Вызов конструкторов суперкласса с помощью ключевого слова super
Другое применение ключевого слова super
Создание многоуровневой иерархии
Порядок вызова конструкторов
Переопределение методов
Динамическая диспетчеризация методов
Назначение переопределенных методов
Применение переопределения методов
Применение абстрактных классов
Ключевое слово final в сочетании с наследованием
Предотвращение переопределения с помощью ключевого слова final
Предотвращение наследования с помощью ключевого слова final
Класс Object
Глава 9. Пакеты и интерфейсы
Пакеты
Определение пакета
Поиск пакетов и переменная окружения CLASS PATH
Краткий пример пакета
Доступ к пакетам и его компонентам
Пример доступа к пакетам
Импорт пакетов
Интерфейсы
Объявление интерфейса
Реализация интерфейсов
Вложенные интерфейсы
Применение интерфейсов
Переменные в интерфейсах
Расширение интерфейсов
Методы с реализацией по умолчанию
Основы применения методов с реализацией по умолчанию
Прикладной пример
Вопросы множественного наследования
Применение статических методов в интерфейсе
Закрытые методы интерфейсов
Заключительные соображения по поводу пакетов и интерфейсов
Глава 10. Обработка исключений
Основы обработки исключений
Типы исключений
Необрабатываемые исключения
Применение блоков операторов try и catch
Вывод описания исключения
Применение нескольких операторов catch
Вложенные операторы tгу
Оператор throw
Оператор throws
Оператор finally
Встроенные в Java исключения
Создание собственных подклассов исключений
Цепочки исключений
Дополнительные средства для обработки исключений
Применение исключений
Глава 11. Многопоточное программирование
Модель потоков исполнения в Java
Приоритеты потоков
Синхронизация
Обмен сообщениями
Класс Thread и интерфейс Runnable
Главный поток исполнения
Создание потока исполнения
Реализация интерфейса Runnable
Расширение класса Thread
Выбор способа создания потоков исполнения
Создание многих потоков исполнения
Применение методов isAlive() и join()
Приоритеты потоков исполнения
Синхронизация
Применение синхронизированных методов
Оператор synchronized
Взаимодействие потоков исполнения
Взаимная блокировка
Приостановка, возобновление и остановка потоков исполнения
Получение состояния потока исполнения
Одновременное создание и запуск потоков исполнения фабричными методами
Применение многопоточности
Глава 12. Перечисления, автоупаковка и аннотации
Перечисления
Основные положения о перечислениях
Методы values() и valueOf()
Перечисления в Java относятся к типам классов
Перечисления наследуются от класса Enum
Еще один пример перечисления
Оболочки типов
Класс Character
Класс Boolean
Оболочки числовых типов
Автоупаковка
Автоупаковка и методы
Автоупаковка и автораспаковка в выражениях
Автоупаковка и распаковка значений из классов Boolean и Character
Автоупаковка и автораспаковка помогает предотвратить ошибки
Предупреждение
Аннотации
Основы аннотирования программ
Правила удержания аннотаций
Получение аннотаций во время выполнения с помощью рефлексии
Второй пример применения рефлексии
Получение всех аннотаций
Интерфейс AnnotatedElement
Использование значений по умолчанию
Маркерные аннотации
Одночленные аннотации
Встроенные аннотации
Типовые аннотации
Повторяющиеся аннотации
Некоторые ограничения на аннотации
Глава 13. Ввод-вывод, оператор try с ресурсами и прочие вопросы
Основы ввода-вывода
Потоки ввода-вывода
Потоки ввода-вывода байтов и символов
Предопределенные потоки ввода-вывода
Чтение данных, вводимых с консоли
Чтение символов
Чтение символьных строк
Запись данных, выводимых на консоль
Класс PrintWriter
Чтение и запись данных в файлы
Автоматическое закрытие файла
Модификаторы доступа transient и volatile
Применение операции instanceof
Модификатор доступа strictfp
Платформенно-ориентированные методы
Применение ключевого слова assert
Параметры включения и отключения режима проверки утверждений
Статический импорт
Вызов перегружаемых конструкторов по ссылке this()
Компактные профили Java API
Глава 14. Обобщения
Что такое обобщения
Простой пример обобщения
Обобщения оперируют только ссылочными типами
Обобщенные типы различаются по аргументам типа
Каким образом обобщения повышают типовую безопасность
Обобщенный класс с двумя параметрами типа
Общая форма обобщенного класса
Ограниченные типы
Применение метасимвольных аргументов
Ограниченные метасимвольные аргументы
Создание обобщенного метода
Обобщенные конструкторы
Обобщенные интерфейсы
Базовые типы и унаследованный код
Иерархии обобщенных классов
Применение обобщенного суперкласса
Обобщенный подкласс
Сравнение типов в обобщенной иерархии во время выполнения
Приведение типов
Переопределение методов в обобщенном классе
Выведение типов и обобщения
Стирание
Мостовые методы
Ошибки неоднозначности
Некоторые ограничения, присущие обобщениям
Получить экземпляр по параметру типа нельзя
Ограничения на статические члены
Ограничения на обобщенные массивы
Ограничения на обобщенные исключения
Глава 15. Лямбда-выражения
Введение в лямбда-выражения
Основные положения о лямбда-выражениях
Функциональные интерфейсы
Некоторые примеры лямбда-выражений
Блочные лямбда-выражения
Обобщенные функциональные интерфейсы
Передача лямбда-выражений в качестве аргументов
Лямбда-выражения и исключения
Лямбда-выражения и захват переменных
Ссылки на методы
Ссылки на статические методы
Ссылки на методы экземпляра
Ссылки на обобщенные методы
Ссылки на конструкторы
Предопределенные функциональные интерфейсы
Глава 16. Модули
Основные положения о модулях
Простой пример модуля
Компиляция и выполнение первого примера модульного приложения
Подробное рассмотрение операторов requires и exports
Модуль java.base и платформенные модули
Унаследованный код и безымянные модули
Экспорт в конкретный модуль
Применение оператора requires transitive
Применение служб
Основные положения о службах и поставщиках их услуг
Ключевые слова для поддержки служб
Пример модульной службы
Графы модулей
Специальные средства модулей
Открытые модули
Оператор opens
Оператор requires static
Утилита jlink и модульные архивные JAR-файлы
Связывание файлов в развернутом каталоге
Связывание модульных архивных JAR-файлов
Файлы формата JMOD
Об уровнях и автоматических модулях
Заключительные соображения по поводу модулей
Часть II. Библиотека Java
Глава 17. Обработка символьных строк
Конструкторы символьных строк
Длина символьной строки
Специальные строковые операции
Строковые литералы
Сцепление строк
Сцепление символьных строк с другими типами данных
Преобразование символьных строк и метод toStr ing()
Извлечение символов
Метод charAt()
Метод getChars()
Метод getBytes()
Метод toCharArray()
Сравнение символьных строк
Методы equals() и equalsIgnoreCase()
Метод regionMatches()
Методы startsWith() nendsWithf)
Метод equals() в сравнении с операцией ==
Метод compareTo()
Поиск в символьных строках
Видоизменение символьных строк
Метод substring()
Метод сoneat()
Метод replace()
Метод trim()
Преобразование данных методом valueOf()
Смена регистра букв в строке
Соединение символьных строк
Дополнительные методы из класса String
Класс StringBuffer
Методы length() и capacity()
Метод ensureCapacity()
Метод setLength()
Методы charAt() и setCharAt()
Метод get Chars()
Метод append()
Метод insert()
Метод reverse()
Методы delete() и deleteCharAt()
Метод replace()
Метод substring()
Дополнительные методы из класса StringBuf fer
Класс StringBuilder
Глава 18. Пакет java. lang
Оболочки примитивных типов
Класс Number
Классы DoublenFloat
Методы islnfinite() nisNaN()
Классы Byte, Short, Integer и Long
Класс Character
Дополнения класса Character для поддержки кодовых точек в Юникоде
Класс Boolean
Класс Void
Класс Process
Класс Runt ime
Управление памятью
Выполнение других программ
Класс Runtime .Version
Класс ProcessBuilder
Класс System
Измерение времени выполнения программы методом currentTimeMills()
Применение метода аггаусору()
Свойства окружения
Интерфейс System. Logger и класс System. LoggerFinder
Класс Object
Применение метода clone() и интерфейса Cloneable
Класс Class
Класс ClassLoader
Класс Math
Тригонометрические функции
Экспоненциальные функции
Функции округления
Прочие методы из класса Math
Класс StrictMath
Класс Compiler
Классы Thread, ThreadGroup и интерфейс Runnable
Интерфейс Runnable
Класс Thread
Класс ThreadGroup
Классы ThreadLocal и InheritableThreadLocal
Класс Package
Класс Module
Класс ModuleLayer
Класс RuntimePermission
Класс Throwablе
Класс SecurityManager
Класс StackTraceElement
Класс StackWalker и интерфейс StackWalker. StackFrame
Класс Enum
Глава 19. Пакет java.util, часть I. Collections Framework
Краткий обзор коллекций
Интерфейсы коллекций
Интерфейс Collection
Интерфейс List
Интерфейс Set
Интерфейс SortedSet
Интерфейс NavigableSet
Интерфейс Queue
Интерфейс Dequeue
Классы коллекций
Класс Array List
Класс LinkedList
Класс HashSet
Класс LinkedHashSet
Класс TreeSet
Класс Priority Queue
Класс ArrayDeque
Класс EnumSet
Доступ к коллекциям через итератор
Применение интерфейса Iterator
Цикл for в стиле foreach как альтернатива итераторам
Итераторы-разделители
Сохранение объектов пользовательских классов в коллекциях
Интерфейс RandomAc с ess
Манипулирование отображениями
Интерфейсы отображений
Классы отображений
Компараторы
Применение компараторов
Алгоритмы коллекций
Массивы
Унаследованные классы и интерфейсы
Интерфейс Enumeration
Класс Vector
Класс Stack
Класс Dietionary
Класс Hashtable
Класс Properties
Применение методов store() и load()
Заключительные соображения по поводу коллекций
Глава 20. Пакет java.util, часть II. Прочие служебные классы
Класс StringTokenizer
Класс BitSet
Классы Optional, OptionalDouble, Optionallnt и OptionalLong
Класс Date
Класс Calendar
Класс GregorianCalendar
Класс TimeZone
Класс SimpleTimeZone
Класс Locale
Класс Random
Классы Timer и TimerTask
Класс Currency
Класс Formatter
Конструкторы класса Formatter
Методы из класса Formatter
Основы форматирования
Форматирование строк и символов
Форматирование чисел
Форматирование времени и даты
Спецификаторы формата %n и %%
Указание минимальной ширины поля
Указание точности
Применение признаков формата
Выравнивание выводимых данных
Признаки пробела, +, 0 и (
Признак запятой
Признак #
Прописные формы спецификаторов формата
Применение индекса аргумента
Закрытие объекта типа Forma11er
Аналог функции printf() в Java
Класс Scanner
Конструкторы класса Scanner
Основы сканирования
Некоторые примеры применения класса Scanner
Установка разделителей
Прочие средства класса Scanner
Классы ResourceBundle, ListResourceBundle и PropertyResourceBundle
Прочие служебные классы и интерфейсы
Подпакеты, входящие в состав пакета j ava .util
Пакеты java.util, concurrent, java.util, concurrent. atomic, java.util.concurrent.locks
Пакет java.util.function
Пакет java.util.jar
Пакет java.util.logging
Пакет java.util.prefs
Пакет java.util.regex
Пакет java.util.spi
Пакет java.util.stream
Пакет java.util.zip
Глава 21. Пакет java.io для ввода-вывода
Классы и интерфейсы ввода-вывода
Класс File
Каталоги
Применение интерфейса FilenameFiIter
Альтернативный метод listFiles()
Создание каталогов
Интерфейсы AutoCloseable, Closeable и Flushable
Исключения ввода-вывода
Два способа закрытия потоков ввода-вывода
Классы потоков ввода-вывода
Потоки ввода-вывода байтов
Класс InputStream
Класс OutputStream
Класс FilelnputStream
Класс FileOutputStream
Класс ByteArrayInputStream
Класс ByteArrayOutputStream
Фильтруемые потоки ввода-вывода байтов
Буферизованные потоки ввода-вывода байтов
Класс SequencelnputStream
Класс PrintStream
Классы DataOutputStream и DatalnputStream
Класс RandomAccessFile
Потоки ввода-вывода символов
Класс Reader
Класс Writer
Класс FileReader
Класс FileWriter
Класс CharArrayReader
Класс CharArrayWriter
Класс BufferedReader
Класс BufferedWriter
Класс PushbackReader
Класс PrintWriter
Класс Console
Сериализация
Интерфейс Serializable
Интерфейс Externalizable
Интерфейс ObjectOutput
Класс ObjectOutputStream
Интерфейс ObjectInput
Класс ObjectInputStream
Пример сериализации
Преимущества потоков ввода-вывода
Глава 22. Система ввода-вывода NIO
Классы системы ввода-вывода NIO
Основные положения о системе ввода-вывода NIO
Буферы
Каналы
Наборы символов и селекторы
Усовершенствования в системе N10.2
Интерфейс Path
Класс Files
Класс Paths
Интерфейсы атрибутов файлов
Классы FileSystem, FileSystems и Filestore
Применение системы ввода-вывода NIO
Применение системы NIO для канального ввода-вывода
Применение системы NIO для потокового ввода-вывода
Применение системы ввода-вывода NIO для операций в файловой системе
Глава 23. Работа в сети
Основы работы в сети
Сетевые классы и интерфейсы
Класс InetAddress
Фабричные методы
Методы экземпляра
Классы Inet4Address и Inet6Address
Клиентские сокеты по протоколу TCP/IP
Класс URL
Класс URLConnection
Класс HttpURLConnection
Класс URI
Cookie-файлы
Серверные сокеты по протоколу TCP/IP
Дейтаграммы
Класс DatagramSocket
Класс DatagramPacket
Глава 24. Обработка событий
Два подхода к обработке событий
Модель делегирования событий
События
Источники событий
Приемники событий
Классы событий
Класс ActionEvent
Класс AdjustmentEvent
Класс ComponentEvent
Класс ContainerEvent
Класс FocusEvent
Класс ItemEvent
Класс KeyEvent
Класс МоиseEvent
Класс MouseWheelEvent
Класс TextEvent
Класс WindowEvent
Источники событий
Интерфейсы приемников событий
Интерфейс ActionListener
Интерфейс AdjustmentListener
Интерфейс ComponentListener
Интерфейс ContainerListener
Интерфейс FocusListener
Интерфейс ItemListener
Интерфейс KeyListener
Интерфейс MouseListener
Интерфейс MouseMotionListener
Интерфейс MouseWheelListener
Интерфейс TextListener
Интерфейс WindowFocusListener
Интерфейс WindowListener
Применение модели делегирования событий
Основные принципы обработки событий в ГПИ средствами AWT
Обработка событий от мыши
Обработка событий от клавиатуры
Классы адаптеров
Внутренние классы
Анонимные внутренние классы
Глава 25. Введение в библиотеку AWT: работа с окнами, графикой и текстом
Классы библиотеки AWT
Основные положения об окнах
Класс Component
Класс Container
Класс Panel
Класс Window
Класс Frame
Класс Canvas
Работа с обрамляющими окнами
Установка размеров окна
Сокрытие и отображение окна
Установка заголовка окна
Закрытие обрамляющего окна
Метод paint()
Отображение символьной строки
Установка цвета переднего и заднего плана
Запрос на повторное воспроизведение
Создание прикладной программы на основе класса Frame
Поддержка графики
Рисование линий
Рисование прямоугольников
Рисование эллипсов и окружностей
Рисование дуг
Рисование многоугольников
Демонстрация методов рисования
Изменение размеров графики
Работа с цветом
Методы из класса Color
Установка текущего цвета графики
Пример программы, демонстрирующий работу с цветом
Установка режима рисования
Работа со шрифтами
Определение доступных шрифтов
Создание и выбор шрифта
Получение сведений о шрифте
Управление форматированием выводимого текста
Глава 26. Применение элементов управления, диспетчеров компоновки и меню из библиотеки AWT
Основные положения об элементах управления
Ввод и удаление элементов управления
Реагирование на элементы управления
Исключение типа HeadlessException
Метки
Экранные кнопки
Обработка событий от кнопок
Флажки
Обработка событий от флажков
Кнопки-переключатели
Элементы управления выбором
Обработка событий от раскрывающихся списков
Использование списков
Обработка событий от списков
Управление полосами прокрутки
Обработка событий от полос прокрутки
Текстовые поля
Обработка событий в текстовых полях
Текстовые области
Диспетчеры компоновки
Класс FlowLayout
Класс BorderLayout
Вставки
Класс GridLayout
Класс CardLayout
Класс GridBagLayout
Меню и строки меню
Диалоговые окна
О переопределении метода paint()
Глава 27. Изображения
Форматы файлов изображений
Основы работы с изображениями: создание, загрузка и отображение
Создание объекта класса Image
Загрузка изображения
Воспроизведение изображения
Двойная буферизация
Интерфейс ImageProducer
Класс MemoryImageSource
Интерфейс ImageConsumer
Класс PixelGrabber
Класс ImageFilter
Фильтр класса CropImageFilter
Фильтр класса RGB ImageFilter
Дополнительные классы для формирования изображений
Глава 28. Служебные средства параллелизма
Пакеты параллельного прикладного интерфейса API
Пакет java.util.concurrent.atomic
Пакет java.util.concurrent.locks
Применение объектов синхронизации
Класс Semaphore
Класс Count DownLatch
Класс CyclicBarrier
Класс Exchanger
Класс Phaser
Применение исполнителя
Простой пример исполнителя
Применение интерфейсов Callable и Future
Перечисление TimeUnit
Параллельные коллекции
Блокировки
Атомарные операции
Параллельное программирование средствами Fork/Join Framework
Основные классы Fork/Join Framework
Стратегия "разделяй и властвуй”
Первый простой пример вилочного соединения
Влияние уровня параллелизма
Пример применения класса RecursiveTask
Асинхронное выполнение задач
Отмена задачи
Определение состояния завершения задачи
Перезапуск задачи
Предмет дальнейшего изучения
Рекомендации относительно вилочного соединения
Служебные средства параллелизма в сравнении с традиционным подходом к многозадачности в Java
Глава 29. Потоковый прикладной интерфейс API
Основные положения о потоках данных
Потоковые интерфейсы
Получение потока данных
Простой пример потока данных
Операции сведения
Параллельные потоки данных
Отображение
Накопление
Итераторы и потоки данных
Применение итератора в потоке данных
Применение итератора-разделителя
Дальнейшее изучение потокового прикладного интерфейса API
Глава 30. Регулярные выражения и другие пакеты
Обработка регулярных выражений
Класс Pattern
Класс Matcher
Синтаксис регулярных выражений
Примеры, демонстрирующие совпадение с шаблоном
Два варианта сопоставления с шаблоном
Дальнейшее изучение регулярных выражений
Рефлексия
Удаленный вызов методов
Простое приложение “клиент-сервер”, использующее механизм RMI
Форматирование даты и времени средствами пакета java.text
Класс DateFormat
Класс SimpledateFormat
Пакеты из прикладного интерфейса API даты и времени
Основные классы даты и времени
Форматирование даты и времени
Синтаксический анализ символьных строк даты и времени
Дальнейшее изучение пакета java.time
Часть III. Введение в программирование ГПИ средствами Swing
Глава 31. Введение в библиотеку Swing
Происхождение библиотеки Swing
Построение библиотеки Swing на основе библиотеки AWT
Главные особенности библиотеки Swing
Легковесные компоненты Swing
Подключаемый стиль оформления
Связь с архитектурой MVC
Компоненты и контейнеры
Компоненты
Контейнеры
Панели контейнеров верхнего уровня
Пакеты библиотеки Swing
Простое Swing-приложение
Обработка событий
Рисование средствами Swing
Основы рисования
Вычисление области рисования
Пример рисования
Глава 32. Исследование библиотеки Swing
Классы JLabel и Imagelcon
Класс JTextField
Кнопки из библиотеки Swing
Класс JButton
Класс JToggleButton
Флажки
Кнопки-переключатели
Класс JTabbedPane
Класс JScroll Рапе
Класс JList
Класс JComboBox
Деревья
Класс JTable
Глава 33. Введение в меню Swing
Основные положения о меню
Краткий обзор классов JMenuBar, JMenu и JMenuItem
Класс JMenuBar
Класс JMenu
Класс JMenuItem
Создание главного меню
Ввод мнемоники и оперативных клавиш в меню
Ввод изображений и всплывающих подсказок в пункты меню
Классы JRadioButtonMenuItemn JCheckBoxMenuItem
Создание всплывающего меню
Создание панели инструментов
Действия
Составление окончательного варианта программы MenuDemo
Дальнейшее изучение библиотеки Swing
Часть IV. Введение в программирование ГПИ средствами JavaFX
Глава 34. Введение в JavaFX
Основные понятия JavaFX
Пакеты JavaFX
Классы подмостков и сцены
Узлы и графы сцены
Компоновки
Класс приложения и методы его жизненного цикла
Запуск JavaFX-приложения
Скелет JavaFX-приложения
Компиляция и выполнение JavaFX-приложения
Поток исполнения приложения
Метка — простейший элемент управления в JavaFX
Применение кнопок и событий
Основы обработки событий в JavaFX
Элемент управления экранной кнопкой
Демонстрация обработки событий на примере экранных кнопок
Рисование непосредственно на холсте
Глава 35. Элементы управления JavaFX
Классы Image и ImageView
Ввод изображения в метку
Ввод изображения в экранную кнопку
Класс ToggleButton
Класс RadioBut ton
Обработка событий изменения в группе кнопок-переключателей
Другой способ управления кнопками-переключателями
Класс CheckBox
Класс ListView
Представление списка с полосами прокрутки
Активизация режима одновременного выбора нескольких элементов из списка
Класс ComboBox
Класс TextField
Класс Scroll Рапе
Класс TreeView
Эффекты и преобразования
Эффекты
Преобразования
Демонстрация эффектов и преобразований
Ввод всплывающих подсказок
Отключение элементов управления
Глава 36» Введение в меню JavaFX
Основные положения о меню
Краткий обзор классов MenuBar, Menu и Menultem
Класс MenuBar
Класс Menu
Класс Menu Item
Создание главного меню
Ввод мнемоники и оперативных клавиш в меню
Ввод изображений в пункты меню
Классы RadioMenuItem и CheckMenuItem
Создание контекстного меню
Создание панели инструментов
Составление окончательного варианта приложения MenuDemo
Дальнейшее изучение JavaFX
Часть V. Применение Java
Глава 37. Компоненты Java Beans
Общее представление о компонентах Java Beans
Преимущества компонентов Java Beans
Самоанализ
Проектные шаблоны для свойств компонентов Java Beans
Проектные шаблоны для событий
Методы и проектные шаблоны
Применение интерфейса Beanlnfo
Привязанные и ограниченные свойства
Сохраняемость компонентов Java Beans
Настройщики
Прикладной интерфейс Java Beans API
Класс Introspector
Класс PropertyDescriptor
Класс EventSetDescriptor
Класс MethodDescriptor
Пример компонента Java Bean
Глава 38. Введение в сервлеты
Предпосылки для разработки сервлетов
Жизненный цикл сервлета
Варианты разработки сервлетов
Применение контейнера сервлетов Tomcat
Простой пример сервлета
Создание и компиляция исходного кода сервлета
Запуск контейнера сервлетов Tomcat на выполнение
Запуск веб-браузера и запрос сервлета
Прикладной интерфейс Servlet API
Пакет javax.servlet
Интерфейс Servlet
Интерфейс ServletConfig
Интерфейс ServletContext
Интерфейс ServletRequest
Интерфейс ServletResponse
Класс GenericServlet
Класс ServletInputStream
Класс ServletOutputStream
Класс ServletException
Ввод параметров сервлета
Пакет javax.servlet.http
Интерфейс HttpServletRequest
Интерфейс HttpServletResponse
Интерфейс HttpSession
Класс Cookie
Класс HttpServlet
Обработка HTTP-запросов и ответов
Обработка HTTP-запросов типа GET
Обработка HTTP-запросов типа POST
Применение cookie-файлов
Отслеживание сеансов связи
Часть VI. Приложения
Приложение А. Применение документирующих комментариев в Java
Дескрипторы утилиты j avadoc
Дескриптор @author
Дескриптор {@code}
Дескриптор @deprecated
Дескриптор {@docRoot}
Дескриптор @exception
Дескриптор @hidden
Дескриптор {@index}
Дескриптор {@inheritDoc}
Дескриптор {@link}
Дескриптор {@linkplain}
Дескриптор {@literal}
Дескриптор @param
Дескриптор @provides
Дескриптор @return
Дескриптор @see
Дескриптор @seriаl
Дескриптор @serialData
Дескриптор @serialField
Дескриптор @since
Дескриптор @throws
Дескриптор @uses
Дескриптор {@value}
Дескриптор @version
Общая форма документирующих комментариев
Результаты, выводимые утилитой j avadoc
Пример применения документирующих комментариев
Приложение Б. Краткий обзор Java Web Start
Назначение Java Web Start
Главные элементы Java Web Start
Упаковка приложений Java Web Start в архивный JAR-файл
Подписание приложений Java Web Start
Запуск приложений Java Web Start с помощью JNLP-файла
Связывание приложения Java Web Start c JNLP-файлом
Экспериментирование c Java Web Start в локальной файловой системе
Создание архивного JAR-файла для приложения ToggleButtonDemo
Создание хранилища ключей и подписание архивного JAR-файла
Создание JNLP-файла для запуска приложения ToggleButtonDemo
Создание краткого HTML-файла StartTBD. html
Ввод JNLP-файла в список Exception Site List на панели управления Java
Выполнение приложения ToggleButtonDemo из браузера
Выполнение приложений Java Web Start с помощью утилиты j avaws
Выполнение аплетов средствами Java Web Start
Приложение В. Утилита JShell
Основные положения об утилите JShell
Перечисление, редактирование и повторное выполнение кода
Ввод метода
Создание класса
Применение интерфейса
Вычисление выражений и встроенных переменных
Импорт пакетов
Исключения
Другие команды JShell
Дальнейшее изучение JShell
Приложение Г. Аплеты
Два типа аплетов
Основы разработки аплетов
Класс Applet
Архитектура аплетов
Скелет аплета
Инициализация и прекращение работы аплета
Аплеты на основе библиотеки Swing
Предметный указатель