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

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

VI

Содержание

Мнемоники.................................................................................................

248

Интерфейс Action......................................................................................

251

Элементы управления с двумя состояниями.......................................

253

Выключатели JToggleButton .....................................................................

253

Группы элементов управления ButtonGroup...........................................

255

Переключатели JRadioButton...................................................................

257

Флажки JCheckBox....................................................................................

259

Дополнительные значки...........................................................................

260

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

261

Глава 10. Меню и панели инструментов......................................................

262

Меню........................................................................................................

262

Создание системы меню..........................................................................

263

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

266

Выпадающие меню JMenu и разделители JSeparator ...........................

267

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

269

Всплывающие меню JPopupMenu...........................................................

273

Загрузка меню из файлов XML................................................................

275

Панели инструментов.............................................................................

284

Простые панели инструментов................................................................

284

Комбинирование панелей инструментов................................................

287

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

291

Глава 11. Списки ..............................................................................................

292

Обычные списки JList.............................................................................

292

Модели.......................................................................................................

295

Модели для больших списков..................................................................

300

Выделение.................................................................................................

301

Внешний вид списка.................................................................................

306

События списка.........................................................................................

313

Список из флажков...................................................................................

316

Списки JList в Java 7.................................................................................

322

Раскрывающиеся списки JComboBox ...................................................

322

Модель ComboBoxModel ..........................................................................

324

Внешний вид списка.................................................................................

330

Редактирование ........................................................................................

333

События раскрывающегося списка.........................................................

337

Управление всплывающим меню............................................................

340

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

341

Глава 12. Диапазоны значений......................................................................

342

Ползунки JSlider......................................................................................

342

Модель BoundedRangeModel ...................................................................

345

События ползунков...................................................................................

347

Дополнительная настройка внешнего вида............................................

349

Индикаторы процесса JProgressBar .....................................................

352

Когда ничего не ясно.................................................................................

356

Небольшие хитрости ................................................................................

358

Счетчики JSpinner...................................................................................

360

Выбор дат..................................................................................................

363

Редактор элементов .................................................................................

366

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

371

Содержание

VII

Глава 13. Управление пространством..........................................................

372

Панель с вкладками JTabbedPane ........................................................

372

Модель выделения и обработка событий...............................................

376

Дополнительные возможности компонента JTabbedPane.....................

379

Размещение компонентов во вкладках...................................................

381

Разделяемая панель JSplitPane ............................................................

384

Свойства разделяемой панели................................................................

387

События разделяемой панели.................................................................

389

Разделяемая панель в насыщенных интерфейсах................................

389

Панель прокрутки JScrollPane ...............................................................

390

Управление прокруткой............................................................................

393

Компонент JViewport.................................................................................

397

Особенности реализации класса JViewport .....................................

400

Заголовки и уголки панели прокрутки JScrollPane .................................

400

Полосы прокрутки JScrollBar....................................................................

404

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

406

Глава 14. Стандартные диалоговые окна...................................................

407

Многоликий класс JOptionPane .............................................................

408

Вывод сообщений.....................................................................................

408

Ввод данных..............................................................................................

412

Получение подтверждений ......................................................................

416

Дополнительные возможности ................................................................

420

Выбор файлов в компоненте JFileChooser ..........................................

420

Фильтры файлов.......................................................................................

424

Внешний вид файлов ...............................................................................

427

Дополнительные компоненты..................................................................

429

Выбор цвета в компоненте JColorChooser ...........................................

433

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

435

Глава 15. Уход за деревьями.........................................................................

436

Простые деревья....................................................................................

436

Модель дерева TreeModel .....................................................................

439

Узлы TreeNode...........................................................................................

444

Стандартная модель DefaultTreeModel ...................................................

445

Оповещение в нестандартных моделях..................................................

451

Модели деревьев — краткое резюме...............................................

452

Выделение..............................................................................................

452

Внешний вид деревьев..........................................................................

458

Дерево с флажками................................................................................

462

Редактирование узлов ...........................................................................

468

Создание собственного редактора..........................................................

472

Дополнительные события деревьев.....................................................

476

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

478

Глава 16. Текстовые компоненты.................................................................

479

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

480

Текстовые поля.........................................................................................

480

Многострочное поле JTextArea ................................................................

483

Редактор JEditorPane................................................................................

487

Редактирование по максимуму — компонент JTextPane.......................

491

Форматированный вывод — компонент JFormattedTextField ................

495

Модель документа Document ................................................................

500

VIII

Содержание

Текстовое поле с автоматическим заполнением....................................

502

Отмена и повтор операций ......................................................................

507

Управление курсором — интерфейс Caret...........................................

510

Дополнительное выделение текста......................................................

513

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

515

Глава 17. Таблицы...........................................................................................

516

Простые таблицы ...................................................................................

516

Простая настройка внешнего вида.......................................................

520

Модели таблицы JTable..........................................................................

522

Модель данных TableModel ......................................................................

523

Модель таблицы для работы с базами данных......................................

531

Модель столбцов таблицы.......................................................................

537

Модели выделения...................................................................................

544

Сортировка и фильтрация........................................................................

548

Внешний вид ячеек таблицы.................................................................

554

Редактирование ячеек таблицы............................................................

560

Редактор дат..............................................................................................

562

Заголовок таблицы JTableHeader..........................................................

566

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

569

Глава 18. Круговорот данных........................................................................

570

Обмен данными......................................................................................

570

Буфер обмена Clipboard...........................................................................

570

Типы данных для обмена.........................................................................

571

Адаптация данных....................................................................................

574

Буфер обмена и стандартные компоненты Swing..................................

578

Операции перетаскивания.......................................................................

578

TransferHandler и буфер обмена..............................................................

585

Отмена и повтор операций....................................................................

587

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

591

Введение

Java, «чистокровный» объектно-ориентированный язык с прекрасным набором библиотек, изначально переносимый между различными платформами и практически не зависящий от конкретного производителя, быстро завоевал сердца разработчиков и признание крупнейших производителей программного обеспечения. Это скорее не язык, а платформа. Со времени первого издания книги платформа Java стала еще более популярна и является, пожалуй, самым распространенным решением при создании различных сложных приложений. Она охватывает практически все области, в которых применяется программирование: платформа J2ME (Java 2 Micro Edition) предназначена для создания приложений для мобильных устройств с ограниченными ресурсами, платформа J2EE (Java 2 Enterprise Edition) позволяет создавать распределенные системы самого высокого качества и любого уровня сложности, а также пользовательские интерфейсы Web, но ядром Java можно без сомнения назвать платформу J2SE (Java 2 Standard Edition) — именно с нее все начиналось, и эта часть Java по-прежнему является центральной. С помощью J2SE вы сможете создавать приложения для самых разнообразных нужд пользователей, это могут быть текстовые редакторы, электронные таблицы, клиенты для распределенных систем, созданных по технологии J2EE, апплеты, работающие в браузере как части HTML-страниц, удобные интерфейсы к базам данных JDBC и т. д.

Важнейшую часть любой программы составляет ее пользовательский интерфейс. На самом деле пользователя мало интересуют сложные алгоритмы обработки данных и удачные находки, реализованные внутри программы, также мало его занимают и технологии, примененные для создания самого приложения и его пользовательского интерфейса. Пользователь видит только то, что видит, и именно этот факт следует учитывать при решении всех задач по проектированию и созданию пользовательского интерфейса. Интерфейс должен быть максимально быстрым и максимально удобным для пользователя, который должен также получать и эстетическое удовольствие от работы с вашей программой.

Сегодня особенно популярны пользовательские интерфейсы HTML в сети Web, которые с появлением динамического обновления данных с помощью AJAX во многом вытесняют стандартные приложения операционных систем. Написание таких интерфейсов бывает трудоемким и требует взаимодействия распределенных сетевых систем, в то время как стандартные интерфейсы операционных систем зачастую помогают быстрее создать полнофункциональное приложение, особенно если вам помогает библиотека высокого качества и вам необходим полный доступ к ресурсам системы.

В этой книге мы увидим, на что способны современные версии Java при создании пользовательского интерфейса приложений. В вашем распоряжении окажутся и мельчайшие детали внешнего вида программ, и средства обработки данных, которые должен будет отображать компонент. Java располагает множеством компонентов, способных удовлетворить самый взыскательный вкус и вывести на экран самые замысловатые данные. И как бы сложно ни было то, что вы намереваетесь создать, изучение и освоение инструментов, которые окажутся у вас в руках, не потребует титанических усилий. Поняв основные принципы работы компонентов и разобрав несколько простых примеров, вы осознаете, что получили не обычный набор библиотек для создания пользовательского интерфейса, а настоящую палитру художника, которая позволит нарисовать великолепную картину всего парой несложных мазков.

X

Введение

Java Foundation Classes

Одной из самых больших и самых важных частей платформы J2SE является набор библиотек под общим названием Java Foundation Classes (JFC). Именно эти библиотеки предназначены для создания эффектных и отточенных пользовательских интерфейсов. Ниже перечислены библиотеки, входящие в набор Java Foundation Classes:

Swing. Важнейшая часть JFC; содержит компоненты для создания пользовательского интерфейса, такие как таблицы и текстовые поля, а также инструменты для работы с этими компонентами. Библиотека Swing, как мы вскоре увидим, великолепно спланирована и реализована, она способна дать все, что может пожелать разработчик пользовательского интерфейса. Если вы создаете лаконичный «деловой» интерфейс, вам понадобится всего пара строк кода. Если же вы «раскрашиваете» ваше приложение всеми красками радуги и создаете для него сложный нестандартный интерфейс, вам понадобится немного больше усилий. Но ничего невозможного для Swing нет.

Java2D. Вторая по важности в JFC библиотека, позволяющая применять в своем приложении современную двухмерную графику, в том числе аффинные преобразования, дробные координаты, сглаживание, расширенные операции с растрами и многое другое. Библиотека Java2D встроена в Swing — все компоненты последней используют ее для вывода своих данных на экран, хотя и неявно.

Accessibility. Набор классов и интерфейсов, следующих промышленному стандарту и наделяющих приложения средствами поддержки пользователей с ограниченными возможностями. С помощью Accessibility вы сможете, например, передать текстовое описание интерфейса системе синтеза речи, что позволит работать с вашей программой пользователям с нарушениями зрения. Замечательно то, что во всех компонентах Swing интерфейсы Accessibility уже реализованы и после небольшой настройки самый обычный интерфейс моментально превращается в специализированный, ориентированный на пользователей с ограниченными возможностями. Для приложений высшего уровня качества это свойство Swing просто незаменимо.

Drag’n’Drop. Дополнение, позволяющее вашему приложению взаимодействовать с приложениями операционной системы пользователя или другими Java-приложениями с помощью технологии перетаскивания (drag and drop). Подобная возможность очень удобна для пользователя и позволяет ему сразу же забыть о том, что приложение написано на Java и не имеет практически никаких связей с его операционной системой. Напрямую с этим дополнением работать, как правило, не приходится, так как Swing берет многие детали процесса на себя.

Ядром Java Foundation Classes без всяких сомнений является библиотека Swing, остальные части набора классов так или иначе встроены в нее или предоставляют для компонентов этой библиотеки дополнительные возможности. Создавать пользовательский интерфейс своих приложений вы будете именно с помощью Swing, и именно эту библиотеку мы будем изучать. Для начала мы познакомимся с основными свойствами Swing, ее общей структурой, а затем перейдем к компонентам библиотеки. Они позволят создавать фантастические пользовательские интерфейсы всего одним мановением руки.

Структура книги

Большая часть книги посвящена описанию компонентов Swing и примерам их использования. Ну а начнем мы с исследования основных механизмов библиотеки, тех

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