Spec-Zone .ru
спецификации, руководства, описания, API
Содержание документации

Улучшения Swing в Java Standard Edition 6.0

Основные функции
Разные Изменения

Основные функции

Улучшения Стили платформы

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

SwingWorker

Абстрактный class javax.swing. SwingWorker был добавлен к JDK. SwingWorker class позволяет продолжительной задаче выполняться на фоновом потоке. Подкласс SwingWorker должен реализовать doInBackground() метод, который выполняет фоновое вычисление. В то время как фоновая задача выполняется, событие диспетчеризируют поток, обрабатывает события и обеспечивает любые необходимые обновления для UI. SwingWorker class поддерживает промежуточные результаты. Фоновая задача может вызвать publish метод, который отправляет частичные данные process метод для того, чтобы обработать на событии диспетчеризирует поток. Кроме того, SwingWorker class поддерживает слушателей изменения свойства. Любое изменение свойства инициировало событие, которое вызывает методы обработки событий на событие, диспетчеризируют поток.

Использованию SwingWorker рекомендуют выполнить отнимающие много времени задачи. Для получения дополнительной информации см. Параллелизм в разделе Swing учебного руководства Swing.

Текстовая Печать

Несколько новых методов javax.swing. JTextComponent class оказывают поддержку печати для текстовых документов. Поддерживаемые форматы включают HTML, RTF, и простой текст. Новый API позволяет Вам печатать все содержание текстового компонента независимо от того, видим ли компонент или нет. Функции включают печать в интерактивном режиме или нев интерактивном режиме, выводя на экран диалоговое окно печати, добавляя пользовательские заголовки или нижние колонтитулы, и автоматическое расположение и разбиение на страницы. Контент документа форматируется, чтобы соответствовать размеру страницы.

Новый API включает следующие методы:

Для получения дополнительной информации см., Как Напечатать текстовый раздел учебного руководства Swing.

JTable Сортировка и Фильтрация

Чтобы обеспечить сортировку и фильтрацию возможностей, несколько новых классов были добавлены к JDK. Основание для сортировки и фильтрации обеспечивается абстрактным RowSorter class. DefaultRowSorter class является реализацией RowSorter class, который имеет дело с основанными на сетке моделями. TableRowSorter class был добавлен к javax.swing.table пакету как реализация RowSorter class для JTables. TableRowSorter class позволяет Вам определить отличающийся Comparators и также предоставляет возможность фильтрации.

Для получения дополнительной информации см., Как Использовать Табличный раздел учебного руководства Swing.

Улучшения расположения

Новый API предназначается для разработчиков, которые пишут менеджерам по расположению, и включает следующие две функции: возможность получить базовую линию для компонентов и возможности получить привилегированный интервал между компонентами.

Профессиональные разметки обычно выравнивают компоненты вдоль своей базовой линии. Ранее, Swing, обеспеченный никакие средства получить базовую линию компонентов. Как решение этой проблемы, getBaseline (интервал, интервал) и getBaselineResizeBehavior () методы были добавлены к javax.swing. class JComponent, чтобы получить базовую линию и базовое поведение, когда размер компонента изменяется.

Каждый стиль обеспечивает различные направляющие линии относительно того, как далеко компоненты должны быть помещены друг от друга. Чтобы создать перекрестный стиль платформы должен быть API для того, чтобы получить эту информацию. Как решение, javax.swing. LayoutStyle class был добавлен. Менеджеры по расположению могут использовать этот class, чтобы определить привилегированное количество пространства, чтобы поместить между компонентами. Авторы стили могут предоставить пользовательскому LayoutStyle, переопределяя getLayoutStyle() метод стили.

Произвольные Компоненты как Вкладки JTabbedPane

До выпуска 6 контент вкладки снабженной вкладками области был ограничен строкой или значком (или оба). Новый API позволяет Вам добавлять пользовательские компоненты к вкладкам. Наиболее популярный способ использования этой функции должен добавить близкие кнопки, которые удаляют вкладки из снабженных вкладками областей. Следующие новые методы были добавлены к javax.swing. JTabbedPane class:

Для получения дополнительной информации см., Как Использовать Снабженный вкладками раздел Областей учебного руководства Swing.

Истинная Двойная буферизация

Ранее, когда Swing, базируемое приложение было представлено, будучи скрытым другим приложением, был значимой задержкой между моментом, когда фон окна был стерт и момент когда нарисованное окно. Проблема была разрешена с добавлением истинной двойной буферизации к Swing.

У каждого окна есть внеэкранное изображение, которое синхронизируется с соответствующим экранным изображением. Поскольку окно представляется, его внеэкранное изображение непосредственно копируется на потоке инструментария в экран. Другое преимущество применяется к приложениям, которые блокируют событие, диспетчеризируют поток. Если пользователь скрывает и затем представляет окно приложения, приложение все еще красит, в то время как EDT блокируется.

Кроме того, RepaintManager class теперь обрабатывает рисование для высокоуровневых компонентов Swing (JApplet, JWindow, JFrame, и JDialog) и поддерживает новую архитектуру рисования, основанную на расположении компонента в окне. Следующие новые методы были добавлены к RepaintManager class:

Все высокоуровневые компоненты Swing переопределяют repaint метод, который вызывает соответствующее addDirtyRegion метод.

JRootPane class теперь переопределяет setDoubleBuffered метод, который определяет, должен ли этот компонент использовать буфер для рисования или нет.

Менеджер по Расположению GroupLayout

Менеджер по расположению GroupLayout был добавлен к javax.swing пакет. Это расположение было разработано для разработчика GUI, предоставленного IDE NetBeans. GroupLayout прежде всего предназначается для использования разработчиками GUI, но может быть кодирован рукой также.

Для получения дополнительной информации см., Как Использовать раздел GroupLayout учебного руководства Swing.

Перетащите и Отбросьте Улучшения

Два главных улучшения были представлены функции Перетаскивания и Отбрасывания в выпуске 6.

Во-первых, работа Перетаскивания и Отбрасывания может быть сконфигурирована, чтобы не использовать выбор для того, чтобы показать расположение отбрасывания (обратитесь к Базе данных Ошибки, ID ошибки 4468566.) Новый механизм представляет свойство DropMode для компонентов, которые поддерживают отбрасывания такой как JTree, JTable, JList, и JTextComponent. DropMode свойство используется, чтобы определить режим, которым компонент отслеживает и указывает на расположение отбрасывания. Установить это свойство для компонента, setDropMode(DropMode) метод был добавлен к class компонента для каждого упомянутого выше компонента. Упомянутый ниже доступные режимы отбрасывания и компоненты, которые поддерживают их:

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

Второе улучшение включает TransferHandler class относительно обработки операций отбрасывания. Ранее, TransferHandler class был неспособен выполнить общие связанные с отбрасыванием задачи начиная с методов обработки импорта необходимая информация, в которой испытывают недостаток. Новый TransferHandler. TransferSupport внутренний class обеспечивает детали о каждой работе передачи.

Новые перегруженные версии canImport и importData методов были добавлены к TransferHandler class. Эти методы берут экземпляр TransferSupport class и таким образом позволяет разработчикам принимать или отклонять передачи, основанные на деталях передачи. Разработчики могут также настроить поведение отбрасывания, основанное на a Transferable, расположение отбрасывания, или действие отбрасывания, связанное с передачей, полученной от TransferSupport экземпляр. Например, новое canImport метод может быть реализован, чтобы обнаружить попытку переместить данные от дочернего элемента к его родителю и отклонить такую передачу. В отличие от предыдущих версий, canImport метод вызывает непрерывно компонент TransferHandler, в то время как работа перетаскивания и отбрасывания имеет место по компоненту. Эта функция обеспечивает механизм, которым приемлемость передачи может быть изменена много раз во время работы. Для обратной совместимости, старой версии canImport метод вызывает новая версия по умолчанию.

Другое улучшение включает добавление поддержки TransferHandler высокоуровневым компонентам. Эта поддержка оказывается посредством setTransferHandler и getTransferHandler методы, добавленные к class каждого высокоуровневого компонента (JApplet, JWindow, JFrame, и JDialog).

Ранее пользователи должны были сделать выбор сначала и затем щелкнуть по выбранному пункту снова, чтобы инициировать перетащить работу. Теперь перетащить работа инициируется единственным щелчком мышью (обратитесь к Базе данных Ошибки, ID ошибки 4521075.)

Для получения дополнительной информации см. раздел Отбрасывания и Перетаскивания и Передачи данных учебного руководства Swing.

Стиль нимба

Нимб, перекрестный стиль платформы, представленный в Java SE 6 обновлений 10 выпусков, оттягивается с 2-D векторной графикой и может быть представлен в любом разрешении. См. Стиль Нимба для получения дополнительной информации.

 

Разные Изменения

Возможность Сбросить ButtonGroup в Отменявшее государство

ButtonGroup class используется, чтобы создать контекст многократного исключения для ряда кнопок. Первоначально все кнопки в группе отменяются. Ранее не было никакого способа возвратиться к отменявшему состоянию после нажатия кнопки. Теперь clearSelection метод позволяет разработчикам очищать выбор так, чтобы ни одна из кнопок в группе не была нажата.

Новые Константы для javax.swing. Интерфейс действия

Следующие константы были добавлены к интерфейсу Действия.

hideActionText свойство определяет, выводит ли кнопка на экран текст от Action. Чтобы установить и получить это свойство, следующие новые методы были добавлены к AbstractButton class: (булев) setHideActionText и getHideActionText () соответственно.

Поддержка Истины Parentless JDialogs

В JDK 5.0 и более ранних версиях, следующая строка кода выдавала исключение:

JDialog d = new JDialog((Dialog)null);

Swing, только разрешенный Вас, чтобы передать null конструктору JDialog(Frame):

JDialog d = new JDialog((Frame)null);

В последнем случае невидимый фрейм совместно используемого владельца был родителем для всего parentless JDialogs.

С новой моделью Модальности, добавленной к JDK 6, AWT позволяет создание действительно parentless диалоговые окна. Это означает это d.getParent() возвраты null для этих диалоговых окон. Чтобы использовать новый API модальности, JDialogs также должен быть действительно parentless (обратитесь к Базе данных Ошибки, ID ошибки 6300062.)

Новые конструкторы с a Window параметр как владелец был добавлен к JDialog class и новый метод были добавлены к JOptionPane class. Чтобы создать parentless JDialog, можно теперь передать null любому из конструкторов JDialog(Dialog) или JDialog(Window). Чтобы создать parentless JOptionPane, используйте createDialog (Строка) метод.

Как сводка, взгляните на три constuctors ниже:

JDialog d = new JDialog((Dialog)null);

JDialog d = new JDialog((Window)null);

JDialog d = new JDialog((Frame)null);

Отметьте различие: хотя все три конструктора берут null, только первые два диалоговых окна действительно parentless и работа d.getParent() возвраты null для них. Для третьего диалогового окна d.getParent() возвращает фрейм совместно используемого владельца.


Oracle и/или его филиалы Авторское право © 1993, 2012, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами