Spec-Zone .ru
спецификации, руководства, описания, API
|
И GTK и взгляд Windows и чувства были улучшены и улучшены, используя в своих интересах собственные механизмы рендеринга. Все компоненты Swing появляются в соответствии со стилем базовой платформы, обеспечивают соответствующую обратную связь и имеют корректный размер.
Абстрактный класс SwingWorker
класс позволяет продолжительной задаче выполняться на фоновом потоке. Подкласс SwingWorker
должен реализовать doInBackground()
SwingWorker
класс поддерживает промежуточные результаты. Фоновая задача может вызвать publish
process
SwingWorker
класс поддерживает слушателей изменения свойства. Любое изменение свойства инициировало событие, которое вызывает методы обработки событий на событие, диспетчеризируют поток.
Использованию SwingWorker рекомендуют выполнить отнимающие много времени задачи. Для получения дополнительной информации см.
Несколько новых методов
Новый API включает следующие методы:
Чтобы обеспечить сортировку и фильтрацию возможностей, несколько новых классов были добавлены к JDK. Основание для сортировки и фильтрации обеспечивается абстрактным классом RowSorter
класс, который имеет дело с основанными на сетке моделями. Класс RowSorter
класс для JTables. TableRowSorter
класс позволяет Вам определить отличающийся Comparator
s и также предоставляет возможность фильтрации.
Для получения дополнительной информации см.
Новый API предназначается для разработчиков, которые пишут менеджерам по расположению, и включает следующие две функции: возможность получить базовую линию для компонентов и возможности получить привилегированный интервал между компонентами.
Профессиональные разметки обычно выравнивают компоненты вдоль своей базовой линии. Ранее, Swing, обеспеченный никакие средства получить базовую линию компонентов. Как решение этой проблемы,
Каждый стиль обеспечивает различные инструкции относительно того, как далеко компоненты должны быть помещены друг от друга. Чтобы создать перекрестный стиль платформы должен быть API для того, чтобы получить эту информацию. Как решение, getLayoutStyle()
метод стили.
До выпуска 6 контент вкладки снабженной вкладками области был ограничен строкой или значком (или оба). Новый API позволяет Вам добавлять пользовательские компоненты к вкладкам. Наиболее популярный способ использования этой функции должен добавить близкие кнопки, которые удаляют вкладки из снабженных вкладками областей. Следующие новые методы были добавлены к
Для получения дополнительной информации см.
У каждого окна есть внеэкранное изображение, которое синхронизируется с соответствующим экранным изображением. Поскольку окно представляется, его внеэкранное изображение непосредственно копируется на потоке инструментария в экран. Другое преимущество применяется к приложениям, которые блокируют событие, диспетчеризируют поток. Если пользователь скрывает и затем представляет окно приложения, приложение все еще красит, в то время как EDT блокируется.
Кроме того, класс JApplet
, JWindow
, JFrame
, и JDialog
) и поддерживает новую архитектуру рисования, основанную на расположении компонента в окне. Следующие новые методы были добавлены к RepaintManager
класс:
Все высокоуровневые компоненты Swing переопределяют repaint
метод, который вызывает соответствующее addDirtyRegion
метод.
Класс setDoubleBuffered
метод, который определяет, должен ли этот компонент использовать буфер для рисования или нет.
Менеджер по расположению javax.swing
пакет. Это расположение было разработано для разработчика GUI, предоставленного IDE NetBeans. GroupLayout
прежде всего предназначается для использования разработчиками GUI, но может быть кодирован рукой также.
Для получения дополнительной информации см.
Два главных улучшения были представлены функции Перетаскивания и Отбрасывания в выпуске 6.
Во-первых, работа Перетаскивания и Отбрасывания может быть сконфигурирована, чтобы не использовать выбор для того, чтобы показать расположение отбрасывания (обратитесь к Базе данных Ошибки, ID ошибки JTree
, JTable
, JList
, и JTextComponent
. DropMode
свойство используется, чтобы определить режим, которым компонент отслеживает и указывает на расположение отбрасывания. Установить это свойство для компонента, setDropMode(DropMode)
метод был добавлен к классу компонента для каждого упомянутого выше компонента. Упомянутый ниже доступные режимы отбрасывания и компоненты, которые поддерживают их:
ON
- JList
, JTree
, JTable
INSERT
- JList
, JTree
, JTable
, JTextComponent
ON_OR_INSERT
- JList
, JTree
, JTable
ON_OR_INSERT_ROWS, ON_OR_INSERT_COLS
- JTable
USE_SELECTION
- JList
, JTree
, JTable
, JTextComponent
Для обратной совместимости значение по умолчанию этого свойства устанавливается в USE_SELECTION
. Чтобы использовать в своих интересах улучшенный Перетаскивают и функция Отбрасывания, используют один из других упомянутых выше режимов отбрасывания.
Второе улучшение включает TransferHandler
класс относительно обработки операций отбрасывания. Ранее, TransferHandler
класс был неспособен выполнить общие связанные с отбрасыванием задачи начиная с методов обработки импорта необходимая информация, в которой испытывают недостаток. Новый
Новые перегруженные версии TransferHandler
класс. Эти методы берут экземпляр TransferSupport
класс и таким образом позволяет разработчикам принимать или отклонять передачи, основанные на деталях передачи. Разработчики могут также настроить поведение отбрасывания, основанное на a Transferable
, расположение отбрасывания, или действие отбрасывания, связанное с передачей, полученной от TransferSupport
экземпляр. Например, новое canImport
метод может быть реализован, чтобы обнаружить попытку переместить данные от дочернего элемента к его родителю и отклонить такую передачу. В отличие от предыдущих версий, canImport
метод вызывает непрерывно компонент TransferHandler
, в то время как работа перетаскивания и отбрасывания имеет место по компоненту. Эта функция обеспечивает механизм, которым приемлемость передачи может быть изменена много раз во время работы. Для обратной совместимости, старой версии canImport
метод вызывает новая версия по умолчанию.
Другое улучшение включает добавление поддержки TransferHandler высокоуровневым компонентам. Эта поддержка оказывается посредством setTransferHandler
и getTransferHandler
методы, добавленные к классу каждого высокоуровневого компонента (JApplet
, JWindow
, JFrame
, и JDialog
).
Ранее пользователи должны были сделать выбор сначала и затем щелкнуть по выбранному пункту снова, чтобы инициировать перетащить работу. Теперь перетащить работа инициируется единственным щелчком мышью (обратитесь к Базе данных Ошибки, ID ошибки
Для получения дополнительной информации см.
ButtonGroup
класс используется, чтобы создать контекст многократного исключения для ряда кнопок. Первоначально все кнопки в группе отменяются. Ранее не было никакого способа возвратиться к отменявшему состоянию после нажатия кнопки. Теперь
Следующие константы были добавлены к интерфейсу
SELECTED_KEY
JRadioButton
и JCheckBox
экземпляры.DISPLAYED_MNEMONIC_INDEX_KEY
LARGE_ICON_KEY
hideActionText
свойство определяет, выводит ли кнопка на экран текст от Action
. Чтобы установить и получить это свойство, следующие новые методы были добавлены к AbstractButton
класс: JDialog d = new JDialog((Dialog)null);
Swing, только разрешенный Вас, чтобы передать null
конструктору JDialog(Frame):
JDialog d = new JDialog((Frame)null);
В последнем случае невидимый фрейм совместно используемого владельца был родителем для всего parentless JDialogs.
С новой моделью d.getParent()
возвраты null
для этих диалоговых окон. Чтобы использовать новый API модальности, JDialogs также должен быть действительно parentless (обратитесь к Базе данных Ошибки, ID ошибки
Новые конструкторы с a Window
параметр как владелец был добавлен к JDialog
класс и новый метод были добавлены к JOptionPane
класс. Чтобы создать parentless JDialog, можно теперь передать null
любому из конструкторов JDialog(Dialog)
или JDialog(Window)
. Чтобы создать parentless JOptionPane, используйте
Как сводка, взгляните на три 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()
возвращает фрейм совместно используемого владельца.