Введение ......Page 19
Что такое Java? ......Page 20
Структура книги ......Page 21
Выполнение Java-программы ......Page 24
Что такое JDK? ......Page 25
Как установить JDK? ......Page 27
Как использовать JDK? ......Page 28
Особая позиция Microsoft ......Page 30
Java в Интернете ......Page 31
Литература по Java ......Page 32
Благодарности ......Page 33
ЧАСТЬ I. БАЗОВЫЕ КОНСТРУКЦИИ ЯЗЫКА JAVA ......Page 35
Первая программа на Java ......Page 37
Комментарии ......Page 40
Целые ......Page 42
Символы ......Page 43
Строки ......Page 44
Примитивные типы данных и операции ......Page 45
Логические операции ......Page 47
Целые типы ......Page 48
Арифметические операции ......Page 49
Приведение типов ......Page 50
Побитовые операции ......Page 52
Сдвиги ......Page 53
Вещественные типы ......Page 54
Операции присваивания ......Page 55
Выражения ......Page 56
Приоритет операций ......Page 57
Операторы ......Page 58
Условный оператор ......Page 59
Упражнения ......Page 61
Операторы цикла ......Page 62
Оператор continue и метки ......Page 64
Оператор варианта ......Page 65
Массивы ......Page 67
Многомерные массивы ......Page 69
Вопросы для самопроверки ......Page 71
Парадигмы программирования ......Page 73
Абстракция ......Page 76
Иерархия ......Page 79
Ответственность ......Page 80
Модульность ......Page 81
Принцип KISS ......Page 83
Как описать класс и подкласс? ......Page 84
Передача аргументов в метод ......Page 86
Перегрузка методов ......Page 87
Переопределение методов ......Page 88
Реализация полиморфизма в Java ......Page 89
Абстрактные методы и классы ......Page 90
Окончательные члены и классы ......Page 91
Класс Object ......Page 92
Конструкторы класса ......Page 93
Статические члены класса ......Page 94
Класс Complex ......Page 96
Метод main() ......Page 99
Методы с переменным числом аргументов ......Page 100
Где видны переменные ......Page 101
Вложенные классы ......Page 103
Отношения "быть частью" и "являться" ......Page 107
Вопросы для самопроверки ......Page 108
Глава 3. Пакеты, интерфейсы и перечисления ......Page 109
Пакет и подпакет ......Page 110
Права доступа к членам класса ......Page 111
Размещение пакетов по файлам ......Page 113
Импорт классов и пакетов ......Page 115
Java-файлы ......Page 116
Интерфейсы ......Page 117
Перечисления ......Page 121
Объявление аннотаций ......Page 124
Схема проектирования MVC ......Page 126
Шаблон Singleton ......Page 127
Вопросы для самопроверки ......Page 129
ЧАСТЬ II. ИСПОЛЬЗОВАНИЕ КЛАССОВ ИЗ JAVA API ......Page 131
Глава 4. Классы-оболочки и generics ......Page 133
Числовые классы ......Page 134
Автоматическая упаковка и распаковку типов ......Page 136
Настраиваемые типы (generics) ......Page 137
Шаблон типа (wildcard type) ......Page 140
Настраиваемые методы ......Page 141
Класс Boolean ......Page 142
Класс Character ......Page 143
Класс Biglnteger ......Page 146
Класс BigDecimal ......Page 148
Класс Class ......Page 152
Вопросы для самопроверки ......Page 155
Глава 5. Работа со строками ......Page 156
Как создать строку ......Page 157
Как узнать длину строки ......Page 162
Как выбрать подстроку ......Page 163
Как сравнить строки ......Page 164
Как найти символ в строке ......Page 166
Как изменить регистр букв ......Page 167
Как преобразовать в строку данные другого типа ......Page 168
Конструкторы ......Page 169
Как вставить подстроку ......Page 170
Как перевернуть строку ......Page 171
Класс StringTokenizer ......Page 172
Вопросы для самопроверки ......Page 173
Класс Vector ......Page 174
Как добавить элемент в вектор ......Page 175
Как узнать, есть ли элемент в векторе ......Page 176
Как удалить элементы ......Page 177
Класс Stack ......Page 178
Класс Hashtable ......Page 179
Как получить значение по ключу ......Page 180
Как удалить элементы ......Page 181
Класс Properties ......Page 182
Интерфейс List ......Page 185
Интерфейс SortedSet ......Page 186
Интерфейс NavigableSet ......Page 187
Интерфейс Degue ......Page 188
Интерфейс BlockingDeque ......Page 189
Интерфейс Map ......Page 190
Интерфейс NavigableMap ......Page 191
Абстрактные классы-коллекции ......Page 192
Интерфейс Iterator ......Page 193
Интерфейс Listlterator ......Page 194
Классы, создающие списки ......Page 195
Дек ......Page 196
Упорядоченные отображения ......Page 197
Сравнение элементов коллекций ......Page 198
Связанные множества ......Page 199
Методы класса Collections ......Page 200
Упражнение ......Page 201
Вопросы для самопроверки ......Page 202
Бинарный поиск в массиве ......Page 203
Копирование массива ......Page 204
Представление массива строкой ......Page 205
Локальные установки ......Page 206
Часовой пояс и летнее время ......Page 208
Подкласс GregorianCalendar ......Page 209
Представление даты и времени ......Page 210
Копирование массивов ......Page 211
Взаимодействие с системой ......Page 212
ЧАСТЬ III. СОЗДАНИЕ ГРАФИЧЕСКОГО ИНТЕРФЕЙСА ПОЛЬЗОВАТЕЛЯ И АППЛЕТОВ ......Page 214
Глава 8. Принципы построения графического интерфейса ......Page 215
Компонент и контейнер ......Page 217
Иерархия классов AWT ......Page 220
Окно библиотеки Swing ......Page 221
Использование системных приложений ......Page 222
System Tray ......Page 223
Вопросы для самопроверки ......Page 224
Как задать цвет ......Page 226
Как нарисовать чертеж ......Page 228
Класс Polygon ......Page 229
Прочие методы класса Graphics ......Page 230
Как задать шрифт ......Page 231
Класс FontMetrics ......Page 235
Возможности Java 2D ......Page 238
Класс AffineTransform ......Page 240
Класс BasicStroke ......Page 243
Класс GeneralPath ......Page 246
Классы GradientPaintn TexturePaint ......Page 247
Классы LinearGradientPaint и RadialGradientPaint ......Page 249
Вывод текста средствами Java 2D ......Page 250
Методы улучшения визуализации ......Page 254
Вопросы для самопроверки ......Page 256
Класс Component ......Page 257
Как создать свой курсор ......Page 259
События ......Page 260
Класс Container ......Page 261
Кнопка Вutton ......Page 262
Класс CheckboxGroup ......Page 263
Как создать группу радиокнопок ......Page 264
Раскрывающийся список Choice ......Page 265
Список List ......Page 266
События ......Page 267
Класс TextComponent ......Page 268
Поле ввода TextArea ......Page 269
События ......Page 270
События ......Page 272
Контейнер Panel ......Page 274
Контейнер ScrollPane ......Page 275
События ......Page 276
События ......Page 277
Контейнер Dialog ......Page 279
События ......Page 280
События ......Page 282
Компонент Canvas ......Page 283
Создание "легкого" компонента ......Page 285
Создание меню ......Page 287
Всплывающее меню ......Page 292
Вопросы для самопроверки ......Page 295
Глава 11. Оформление ГИП компонентами Swing ......Page 296
Состав библиотеки Swing ......Page 297
Компонент JComponent ......Page 299
Схема MVC в компонентах Swing ......Page 300
Надпись JLabel ......Page 302
Кнопки ......Page 304
Кнопка выбора JToggleButton ......Page 306
Радиокнопка JRadioButton ......Page 308
Упражнение ......Page 309
Раскрывающийся список JComboBox ......Page 310
Список выбора JList ......Page 311
Визуализация элементов списков ......Page 312
Счетчик JSpinner ......Page 314
Ползунок JSlider ......Page 316
Дерево объектов JTree ......Page 318
Строка меню JMenuBar ......Page 322
Пункт меню JMenuItem ......Page 323
Всплывающее меню JPopupМеnu ......Page 325
Панель выбора цвета JColorChooser ......Page 326
Фильтр файлов FileFilter ......Page 328
Дополнительный компонент ......Page 330
Замена изображений ......Page 331
Вопросы для самопроверки ......Page 333
Модель данных — документ ......Page 334
Строка символов Segment ......Page 335
Атрибуты текста ......Page 336
Внесение структуры в документ ......Page 337
Реализации документа ......Page 338
Вид ......Page 339
Курсор ......Page 341
Ограничение перемещения курсора ......Page 342
Раскладка клавиатуры ......Page 343
Поле ввода JTextField ......Page 344
Редактор объектов JFormattedTextField ......Page 347
Область ввода JTextArea ......Page 348
Текстовый редактор JEditorPane ......Page 349
Вопросы для самопроверки ......Page 350
Класс JTable ......Page 351
Модель ячеек таблицы ......Page 353
Заголовки столбцов таблицы JTableHeader ......Page 358
Модель выделения ячеек ......Page 360
Визуализация ячеек таблицы ......Page 361
Редактор ячеек таблицы ......Page 364
Сортировка строк таблицы ......Page 367
Фильтрация строк таблицы ......Page 369
Печать таблицы ......Page 370
Вопросы для самопроверки ......Page 371
Менеджер FlowLayout ......Page 372
Менеджер BorderLayout ......Page 374
Менеджер GridLayout ......Page 376
Менеджер CardLayout ......Page 377
Менеджер GridBagLayout ......Page 379
Панель JPanel ......Page 381
Панель прокрутки JScrollPane ......Page 382
Двойная панель JSplitPane ......Page 384
Панель с вкладками JTabbedPane ......Page 385
Менеджер размещения BoxLayout ......Page 387
Компоненты-заполнители ......Page 388
Менеджер размещения SpringLayout ......Page 389
Размеры Spring ......Page 390
Промежутки Constraints ......Page 391
Размещение компонентов ......Page 392
Панель инструментальных кнопок JToolBar ......Page 393
Интерфейс Action ......Page 395
Слоеная панель JLayeredPane ......Page 396
Корневая панель JRootPane ......Page 397
Окно JWindow ......Page 399
Диалоговое окно JDialog ......Page 400
Окно верхнего уровня JFrame ......Page 401
Внутреннее окно JlntemalFrame ......Page 402
Рабочий стол JDesktopPane ......Page 404
Стандартные диалоги JOptionPane ......Page 405
Окно с индикатором ProgressMonitor ......Page 409
Заключение ......Page 410
Вопросы для самопроверки ......Page 411
Глава 15. Обработка событий ......Page 412
Самообработка событий ......Page 416
Обработка вложенным классом ......Page 417
Событие ActionEvent ......Page 418
Обработка действий мыши ......Page 419
Классы-адаптеры ......Page 422
Управление колесиком мыши ......Page 423
Обработка действий клавиатуры ......Page 424
Событие TextEvent ......Page 425
Обработка действий с окном ......Page 426
Событие ComponentEvent ......Page 427
Событие ItemEvent ......Page 428
Событие AdjustmentEvent ......Page 429
Несколько слушателей одного источника ......Page 431
Диспетчеризация событий ......Page 432
Создание собственного события ......Page 434
Вопросы для самопроверки ......Page 435
Глава 16. Оформление рамок ......Page 436
Прямолинейная рамка LineВorder ......Page 438
Закругленная объемная рамка SoftBevelBorder ......Page 439
Рамка с изображением MatteBorder ......Page 440
Рамки с надписями TitfedBorder ......Page 441
Сдвоенные рамки CompoundBorder ......Page 444
Создание собственных рамок ......Page 445
Вопросы для самопроверки ......Page 450
Глава 17. Изменение внешнего вида компонента ......Page 451
Получение свойств L&F ......Page 453
Задание стандартного L&F ......Page 455
Смена всего L&F ......Page 457
Замена отдельных свойств L&F ......Page 459
Темы Java L&F ......Page 462
Вопросы для самопроверки ......Page 465
Глава 18. Апплеты ......Page 466
Передача параметров в апплет ......Page 472
Атрибуты тега