Материал: Портянкин И. Swing

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Иван Портянкин

Swing: Эффектные пользовательские интерфейсы

Издательство «Лори»

Swing: Эффектные пользовательские интерфейсы

издание 2-ое

Иван Портянкин

Верстка Глазова Т.

Издательство “Лори”, 2011

Изд. № : OAI (03)

ЛР № : 07612 30.09.97 г. ISBN 978-5-85582-305-9

Подписано в печать 20.09.2011 Формат 70 x 100/16 Бумага газетная Гарнитура Баскервиль Печать офсетная Печ. л. 24.5 Тираж 1000 Заказ № Цена договорная

Издательство “Лори” 123100, Москва, Шмитовский пер., д. 13/6, стр. 1 (пом. ТАРП ЦАО)

телефон для оптовых покупателей; (499)2560983 размещение рекламы; (499)2590162 www.lory-press.ru

Отпечатано в типографии ООО “Тиль-2004” Москва, ул. Электрозаводская д. 21

Содержание

 

Введение..............................................................................................................

ix

Глава 1. Основные концепции ..........................................................................

1

В начале было... AWT.................................................................................

2

Компоненты Swing — это легковесные компоненты AWT .........................

5

Совместное использование компонентов AWT и Swing ............................

7

Архитектура JavaBeans..............................................................................

8

Соглашение об именах.................................................................................

9

Расширенные возможности .......................................................................

11

Привязанные свойства........................................................................

11

Ограниченные свойства......................................................................

11

Индексированные свойства ................................................................

12

Редакторы свойств.............................................................................

12

Описание компонента .........................................................................

12

Постоянство........................................................................................

13

Компоненты Swing — это компоненты JavaBeans ...................................

13

Подключаемые внешний вид и поведение.............................................

14

Архитектура MVC........................................................................................

15

Все ли так хорошо в MVC?.........................................................................

18

Решение Swing — представители пользовательского интерфейса........

19

Как все работает.........................................................................................

20

Управление внешним видом и поведением программы..........................

21

Специальные средства для пользователей с ограниченными

 

возможностями.........................................................................................

25

Локализация приложений........................................................................

26

Резюме ........................................................................................................................

26

Глава 2. Модель событий.................................................................................

27

Наблюдатели ............................................................................................

28

Слушатели ................................................................................................

29

Схема именования событий JavaBeans .................................................

32

Стандартные события..............................................................................

33

Техника написания слушателей..............................................................

37

Адаптеры.....................................................................................................

38

Каждому событию — по слушателю..........................................................

39

Внутренние классы..............................................................................

40

Быстро и грязно...................................................................................

42

Диспетчеризация ........................................................................................

43

Проблема висячих ссылок .........................................................................

46

Создание собственных событий .............................................................

47

Список EventListenerList .............................................................................

52

События от мыши и волшебный метод contains()..................................

53

Резюме ......................................................................................................

55

Глава 3. За кулисами системы обработки событий....................................

56

Поток EventDispatchThread и очередь событий EventQueue...................

56

Доставка событий методам processXXXEvent() .......................................

58

IV

 

Содержание

 

Маскирование и поглощение событий......................................................

62

 

Работа с очередью событий ......................................................................

67

 

Влияние на программы потока EventDispatchThread...............................

68

 

Отзывчивость программы и SwingWorker .................................................

73

 

Почему мы так запускаем Swing-приложения..........................................

75

 

Отладка потоков в системе событий......................................................

78

 

Резюме ......................................................................................................

79

Глава 4.

Рисование в Swing ...........................................................................

80

 

Система рисования..................................................................................

80

 

Метод paint() — резюме..............................................................................

83

 

Метод repaint() — пара дополнений..........................................................

84

 

Рисование легковесных компонентов.......................................................

84

 

Легковесные компоненты: резюме............................................................

89

 

Система рисования Swing .......................................................................

89

 

Кэширование...............................................................................................

90

 

Разделение обязанностей..........................................................................

91

 

Метод paintComponent() .............................................................................

91

 

Метод paintBorder() .....................................................................................

92

 

Метод paintChildren()...................................................................................

93

 

Общая диаграмма рисования в Swing ......................................................

94

 

Программная перерисовка в Swing...........................................................

95

 

Рисование в Swing: резюме......................................................................

96

 

Рисование «готовых» компонентов...........................................................

96

 

Рисование вне рамок...............................................................................

99

 

RepaintManager как прикладной инструмент .........................................

99

 

Отладка графики....................................................................................

102

 

Резюме ....................................................................................................

105

Глава 5.

Внутренние винтики Swing ...........................................................

106

 

Проверка корректности компонентов...................................................

106

 

Метод Swing: revalidate() ..........................................................................

108

 

Проверка корректности в Swing: резюме................................................

110

 

Клавиатурные сокращения.....................................................................

111

 

Класс KeyStroke ........................................................................................

111

 

Карты входных событий и команд...........................................................

112

 

Методы поддержки клавиатурных сокращений......................................

113

 

Система передачи фокуса ввода..........................................................

116

 

Настройка системы передачи фокуса.....................................................

117

 

Расширенные возможности .....................................................................

120

 

Всплывающие подсказки и клиентские свойства.................................

121

 

Резюме ....................................................................................................

122

Глава 6. Контейнеры высшего уровня ........................................................

123

 

Корневая панель JRootPane..................................................................

123

 

Многослойная панель JLayeredPane.......................................................

124

 

Панель содержимого................................................................................

129

 

Строка меню..............................................................................................

130

 

Прозрачная панель...................................................................................

131

 

Корневая панель — итог ..........................................................................

136

 

Расширение границ — J(X)Layer .............................................................

139

 

Окна Swing ..............................................................................................

142

Окно без рамки JWindow ..........................................................................

142

Содержание

V

Окно с рамкой JFrame ..............................................................................

145

События окон............................................................................................

146

Диалоговое окно JDialog ..........................................................................

147

Специальное оформление окон..............................................................

150

Прозрачность и произвольные формы ...................................................

152

Кратко об апплетах — класс JApplet.....................................................

154

Многооконное окружение.......................................................................

156

Внутренние окна JInternalFrame ..............................................................

159

Резюме ....................................................................................................

160

Глава 7. Искусство расположения................................................................

161

Как работает менеджер расположения ................................................

162

Стандартные менеджеры расположения.............................................

167

Полярное расположение BorderLayout ...................................................

167

Последовательное расположение FlowLayout .......................................

169

Табличное расположение GridLayout ......................................................

171

Динамические вкладки и CardLayout.......................................................

174

Менеджер расположения SpringLayout...................................................

174

Абсолютное расположение......................................................................

176

Вложенные расположения.......................................................................

176

Блочное расположение BoxLayout ..........................................................

177

Расстояние между компонентами...................................................

180

Проблема с распорками.....................................................................

186

Выравнивание компонентов по осям...............................................

187

Расположение по группам: GroupLayout .................................................

191

Гибкая сетка: GridBagLayout ....................................................................

191

Быстрый язык MigLayout........................................................................

198

Общий подход.........................................................................................

200

Рекомендации от Sun ...............................................................................

202

Рекомендации по расположению и класс LayoutStyle ...........................

203

Реализация в коде: вложенные блоки.....................................................

204

Реализация: гибкая сетка.........................................................................

211

Резюме ....................................................................................................

212

Глава 8. Вывод вспомогательной информации.......................................

213

Надписи JLabel .......................................................................................

213

Значки Icon ................................................................................................

216

Использование HTML ...............................................................................

218

Надписи и события...................................................................................

220

Надписи и мнемоники...............................................................................

220

Всплывающие подсказки.......................................................................

222

Настройка подсказок ................................................................................

225

Рамки.......................................................................................................

227

Фабрика BorderFactory .............................................................................

231

Создание собственных рамок..................................................................

232

Рамки и разработка собственных компонентов .....................................

236

Резюме ....................................................................................................

238

Глава 9. Элементы управления.....................................................................

239

Кнопки JButton ........................................................................................

239

Внешний вид кнопок .................................................................................

239

У кнопок есть модель................................................................................

244

Обработка событий от кнопок..................................................................

245

Источник: https://studfile.net/preview/15935977/