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

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

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

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

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

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

SwingWorker

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

hideActionText свойство определяет, выводит ли кнопка на экран текст от Action. Чтобы установить и получить это свойство, следующие новые методы были добавлены к AbstractButton класс: 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 класс и новый метод были добавлены к JOptionPane класс. Чтобы создать 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, 2011, Oracle и/или его филиалы. Все права защищены.
Свяжитесь с Нами