Spec-Zone.ru › OpenJDK 21

Пакет javax.swing

package javax.swing
Предоставляет набор "лёгких" (все на языке Java) компонентов, которые, насколько это возможно, работают одинаково на всех платформах. Для руководства программиста по использованию этих компонентов, см. Создание графического интерфейса с JFC/Swing, учебный курс в Руководстве по Java. Для других ресурсов, см. Связанная документация.

Политика потоков Swing

В общем случае Swing не является потокобезопасным. На все компоненты Swing и связанные классы, если не указано иное, нужно обращаться в потоке обработки событий.

Типичные приложения Swing выполняют обработку в ответ на событие, сгенерированное пользователем. Например, щелчок по JButton уведомляет все ActionListeners , добавленные в JButton. Поскольку все события, генерируемые пользователем, отправляются в потоке обработки событий, большинство разработчиков не сталкиваются с этим ограничением.

Однако ограничения касаются построения и отображения приложения Swing. Вызовы метода приложения main или методов в Applet не вызываются в потоке обработки событий. Поэтому необходимо перенаправить управление в поток обработки событий при создании и отображении приложения или апплета. Предпочтительный способ передачи управления и начала работы с Swing — использование invokeLater. Метод invokeLater планирует Runnable для обработки в потоке обработки событий. Два следующих примера работают одинаково хорошо для передачи управления и запуска приложения Swing:

 import javax.swing.SwingUtilities;

 public class MyApp implements Runnable {
     public void run() {
         // Invoked on the event dispatching thread.
         // Construct and show GUI.
     }

     public static void main(String[] args) {
         SwingUtilities.invokeLater(new MyApp());
     }
 }
Или:
 import javax.swing.SwingUtilities;

 public class MyApp {
     MyApp(String[] args) {
         // Invoked on the event dispatching thread.
         // Do any initialization here.
     }

     public void show() {
         // Show the UI.
     }

     public static void main(final String[] args) {
         // Schedule a job for the event-dispatching thread:
         // creating and showing this application's GUI.
         SwingUtilities.invokeLater(new Runnable() {
             public void run() {
                 new MyApp(args).show();
             }
         });
     }
 }
Это ограничение также относится к моделям, присоединённым к компонентам Swing. Например, если TableModel присоединён к JTable, то TableModel следует изменять только в потоке обработки событий. Если вы изменяете модель в отдельном потоке, вы рискуете возникновением исключений и возможным повреждением отображения.

Хотя в целом безопасно вносить изменения в пользовательский интерфейс немедленно при выполнении в потоке обработки событий, есть исключение: если слушатель модели пытается дополнительно изменить пользовательский интерфейс до того, как пользовательский интерфейс будет обновлён, чтобы отразить ожидаемое изменение, то пользовательский интерфейс может отобразиться неправильно. Это может произойти, если слушатель приложения должен обновить пользовательский интерфейс в ответ на событие, которое вызовет изменение структуры модели. Важно сначала позволить установленным слушателям компонента обработать это изменение, так как нет гарантии порядка вызова слушателей. Решением является выполнение изменения слушателем приложения с помощью SwingUtilities.invokeLater(Runnable), чтобы любые изменения в отображении пользовательского интерфейса были выполнены после обработки всех слушателей модели, установленных компонентом.

Поскольку все события доставляются в потоке обработки событий, при обработке событий необходимо соблюдать осторожность. В частности, длительная задача, такая как сетевое ввод-вывод или вычисления, выполняемая в потоке обработки событий, блокирует поток обработки событий от отправки других событий. Пока поток обработки событий заблокирован, приложение полностью не реагирует на пользовательский ввод. Обратитесь к SwingWorker для предпочтительного способа выполнения такой обработки при работе с Swing.

Дополнительную информацию по этому вопросу можно найти в учебном руководстве по Swing, в частности, в разделе о конкурентности в Swing.

Политика сериализации Swing

Предупреждение: Сериализованные объекты любого класса Swing не будут совместимы с будущими версиями Swing. Текущая поддержка сериализации подходит для кратковременного хранения или RMI между приложениями, работающими с одной и той же версией Swing. Начиная с версии 1.4, поддержка долгосрочного хранения всех JavaBeans была добавлена в пакет java.beans.

Связанная документация

Для обзоров, учебных пособий, примеров, руководств и другой документации, пожалуйста, см.:
  • Обзор архитектуры Swing
  • Руководство по Java
  • Обучение и сертификация Java SE
Пакет Описание
javax.swing.border
Предоставляет классы и интерфейсы для рисования специализированных рамок вокруг компонента Swing.
javax.swing.colorchooser
Содержит классы и интерфейсы, используемые компонентом JColorChooser.
javax.swing.event
Предоставляет события, генерируемые компонентами Swing.
javax.swing.filechooser
Содержит классы и интерфейсы, используемые компонентом JFileChooser.
javax.swing.plaf
Предоставляет один интерфейс и множество абстрактных классов, которые Swing использует для предоставления возможностей изменяемого внешнего вида и ощущений.
javax.swing.table
Предоставляет классы и интерфейсы для работы с javax.swing.JTable.
javax.swing.text
Предоставляет классы и интерфейсы, которые обрабатывают редактируемые и нередактируемые текстовые компоненты.
javax.swing.tree
Предоставляет классы и интерфейсы для работы с javax.swing.JTree.
javax.swing.undo
Позволяет разработчикам обеспечить поддержку отмены/повторной операции в таких приложениях, как текстовые редакторы.
Класс Описание
AbstractAction
Этот класс предоставляет реализации по умолчанию для интерфейса JFC Action.
AbstractButton
Определяет общее поведение для кнопок и пунктов меню.
AbstractCellEditor
Базовый класс для CellEditors, предоставляющий реализации по умолчанию для методов в интерфейсе CellEditor за исключением getCellEditorValue().
AbstractListModel<E>
Абстрактное определение модели данных, которая предоставляет List со своим содержимым.
AbstractSpinnerModel
Этот класс предоставляет часть ChangeListener интерфейса SpinnerModel, которая должна быть подходящей для большинства конкретных реализаций SpinnerModel.
Action
Интерфейс Action предоставляет полезное расширение интерфейса ActionListener в случаях, когда к одному и тому же функционалу можно получить доступ через несколько элементов управления.
ActionMap
ActionMap предоставляет сопоставления между Object (называемые ключами или Action именами) и Action.
BorderFactory
Класс-фабрика для получения стандартных Border объектов.
BoundedRangeModel
Определяет модель данных, используемую компонентами, такими как Slider и ProgressBar.
Box
Легковесный контейнер, использующий объект BoxLayout в качестве менеджера компоновки.
Box.Filler
Реализация легковесного компонента, участвующего в компоновке, но не имеющего представления.
BoxLayout
Менеджер компоновки, позволяющий выстраивать несколько компонентов вертикально или горизонтально.
ButtonGroup
Этот класс используется для создания области множественного исключения для набора кнопок.
ButtonModel
Модель состояния для кнопок.
CellEditor
Этот интерфейс определяет методы, которые любой общий редактор должен уметь реализовывать.
CellRendererPane
Этот класс вставляется между рендерерами ячеек и компонентами, которые их используют.
ComboBoxEditor
Компонент-редактор, используемый для компонентов JComboBox.
ComboBoxModel<E>
Модель данных для раскрывающегося списка.
ComponentInputMap
ComponentInputMap — это InputMap, связанная с конкретным JComponent.
DebugGraphics
Подкласс Graphics, поддерживающий отладку графики.
DefaultBoundedRangeModel
Общая реализация BoundedRangeModel.
DefaultButtonModel
Реализация по умолчанию модели данных компонента Button.
DefaultCellEditor
Редактор по умолчанию для ячеек таблиц и деревьев.
DefaultComboBoxModel<E>
Модель по умолчанию для раскрывающихся списков.
DefaultDesktopManager
Это реализация DesktopManager.
DefaultFocusManager
Этот класс устарел API фокусировки версии 1.4.
DefaultListCellRenderer
Отображает элемент в списке.
DefaultListCellRenderer.UIResource
Подкласс DefaultListCellRenderer, реализующий UIResource.
DefaultListModel<E>
Этот класс частично реализует API java.util.Vector, в том смысле, что он реализует версию 1.1.x java.util.Vector, не поддерживает коллекционные классы и уведомляет ListDataListener при изменениях.
DefaultListSelectionModel
Модель данных по умолчанию для выбора в списке.
DefaultRowSorter<M,I>
Реализация RowSorter, предоставляющая сортировку и фильтрацию для модели данных на основе сетки.
DefaultRowSorter.ModelWrapper<M,I>
DefaultRowSorter.ModelWrapper отвечает за предоставление данных, которые сортируются DefaultRowSorter.
DefaultSingleSelectionModel
Общая реализация SingleSelectionModel.
DesktopManager
Объекты DesktopManager принадлежат объекту JDesktopPane.
DropMode
Режимы выгрузки, используемые для определения способа, которым компонент отслеживает и указывает местоположение выгрузки во время перетаскивания.
FocusManager
Этот класс устарел API фокусировки версии 1.4.
GrayFilter
Фильтр изображений, который "отключает" изображение, преобразуя его в оттенок серого, и осветляет пиксели на изображении.
GroupLayout
GroupLayout — это LayoutManager, иерархически группирующий компоненты для их позиционирования в Container.
GroupLayout.Alignment
Перечисление возможных способов, которыми ParallelGroup может выравнивать своих потомков.
Icon
Маленькое изображение фиксированного размера, обычно используемое для украшения компонентов.
ImageIcon
Реализация интерфейса Icon, которая отрисовывает значки из изображений.
InputMap
InputMap обеспечивает привязку между событием ввода (в настоящее время используются только KeyStroke) и Object.
InputVerifier
Этот класс предоставляет механизм валидации для компонентов Swing.
InternalFrameFocusTraversalPolicy
FocusTraversalPolicy, который может по желанию предоставить алгоритм определения начального компонента JInternalFrame.
JApplet Устарело, подлежит удалению: Этот элемент API может быть удален в будущей версии.
API Applet устарело, замены нет.
JButton
Реализация "кнопки-кнопки".
JCheckBox
Реализация флажка — элемента, который может быть выбран или убран, и который отображает свое состояние пользователю.
JCheckBoxMenuItem
Пункт меню, который может быть выбран или убран.
JColorChooser
JColorChooser предоставляет панель элементов управления, предназначенных для манипулирования и выбора цвета пользователем.
JComboBox<E>
Компонент, объединяющий кнопку или поле редактирования и раскрывающийся список.
JComboBox.KeySelectionManager
Интерфейс, определяющий KeySelectionManager.
JComponent
Базовый класс для всех компонентов Swing, кроме контейнеров верхнего уровня.
END_OF_DOCUMENT_MARKER
JDesktopPane
Контейнер, используемый для создания интерфейса с несколькими документами или виртуального рабочего стола.
JDialog
Основной класс для создания диалогового окна.
JEditorPane
Текстовый компонент для редактирования различных типов содержимого.
JFileChooser
JFileChooser предоставляет простой механизм для выбора файла пользователем.
JFormattedTextField
JFormattedTextField расширяет JTextField, добавляя поддержку форматирования произвольных значений, а также извлечения конкретного объекта после редактирования текста пользователем.
JFormattedTextField.AbstractFormatter
Экземпляры AbstractFormatter используются JFormattedTextField для обработки преобразования из объекта в строку и обратно из строки в объект.
JFormattedTextField.AbstractFormatterFactory
Экземпляры AbstractFormatterFactory используются JFormattedTextField для получения экземпляров AbstractFormatter, которые в свою очередь используются для форматирования значений.
JFrame
Расширенная версия java.awt.Frame, добавляющая поддержку архитектуры компонентов JFC/Swing.
JInternalFrame
Легковесный объект, предоставляющий многие функции обычного окна, включая перетаскивание, закрытие, отображение в виде значка, изменение размера, отображение заголовка и поддержку панели меню.
JInternalFrame.JDesktopIcon
Этот компонент представляет собой значок в свернутом виде JInternalFrame.
JLabel
Область отображения короткой текстовой строки, изображения или обоих.
JLayer<V extends Component>
JLayer — универсальный декоратор для компонентов Swing, который позволяет реализовывать различные расширенные эффекты отрисовки и получать уведомления обо всех AWTEvent внутри его границ.
JLayeredPane
JLayeredPane добавляет глубину контейнеру JFC/Swing, позволяя компонентам перекрывать друг друга при необходимости.
JList<E>
Компонент, отображающий список объектов и позволяющий пользователю выбирать один или несколько элементов.
JList.DropLocation
Подкласс TransferHandler.DropLocation, представляющий местоположение для перетаскивания JList.
JMenu
Реализация меню — всплывающего окна, содержащего JMenuItem, которое отображается при выборе элемента в JMenuBar.
JMenuBar
Реализация панели меню.
JMenuItem
Реализация элемента меню.
JOptionPane
JOptionPane упрощает вывод стандартного диалогового окна, которое запрашивает у пользователя значение или информирует его о чем-либо.
JPanel
JPanel — это универсальный легковесный контейнер.
JPasswordField
JPasswordField — это легковесный компонент, который позволяет редактировать одну строку текста, где отображение показывает, что что-то было введено, но не отображает исходные символы.
JPopupMenu
Реализация всплывающего меню — небольшого окна, которое всплывает и отображает ряд вариантов.
JPopupMenu.Separator
Разделитель, специфичный для всплывающего меню.
JProgressBar
Компонент, визуально отображающий прогресс выполнения какой-либо задачи.
JRadioButton
Реализация радиокнопки — элемента, который можно выбрать или снять выбор, и который отображает своё состояние пользователю.
JRadioButtonMenuItem
Реализация пункта меню радиокнопки.
JRootPane
Легковесный контейнер, используемый за кулисами JFrame, JDialog, JWindow, JApplet, и JInternalFrame.
JScrollBar
Реализация полосы прокрутки.
JScrollPane
Обеспечивает прокручиваемый вид легковесного компонента.
JSeparator
JSeparator предоставляет компонент общего назначения для реализации разделительных линий — чаще всего используется как разделитель между пунктами меню, разделяя их на логические группы.
JSlider
Компонент, позволяющий пользователю графически выбрать значение, перемещая ползунок в заданном диапазоне.
JSpinner
Поле ввода одной строки, которое позволяет пользователю выбирать число или значение объекта из упорядоченной последовательности.
JSpinner.DateEditor
Редактор для JSpinner, модель которого является SpinnerDateModel.
JSpinner.DefaultEditor
Простой базовый класс для более специализированных редакторов, отображающий только для чтения текущее значение модели с JFormattedTextField.
JSpinner.ListEditor
Редактор для JSpinner моделью которого является SpinnerListModel.
JSpinner.NumberEditor
Редактор для JSpinner модель которого является SpinnerNumberModel.
JSplitPane
JSplitPane используется для разделения двух (и только двух) Component.
JTabbedPane
Компонент, позволяющий пользователю переключаться между группой компонентов, щелкая по вкладке с заданным заголовком и/или значком.
JTable
JTable используется для отображения и редактирования обычных двумерных таблиц ячеек.
JTable.DropLocation
Подкласс TransferHandler.DropLocation, представляющий местоположение для перетаскивания JTable.
JTable.PrintMode
Режимы печати, используемые при печати JTable.
JTextArea
JTextArea — это многострочная область, отображающая простой текст.
JTextField
JTextField — это легковесный компонент, который позволяет редактировать одну строку текста.
JTextPane
Текстовый компонент, который может быть разметен атрибутами, которые графически представлены.
JToggleButton
Реализация двухсостоятельной кнопки.
JToggleButton.ToggleButtonModel
Модель ToggleButton
JToolBar
JToolBar предоставляет компонент, полезный для отображения часто используемых Action или элементов управления.
JToolBar.Separator
Разделитель, специфичный для панели инструментов.
JToolTip
Используется для отображения "Подсказки" для компонента.
JTree
Элемент управления, отображающий набор иерархических данных в виде контурного обозначения.
JTree.DropLocation
Подкласс TransferHandler.DropLocation представляющий местоположение для перетаскивания JTree.
END_OF_DOCUMENT_MARKER
JTree.DynamicUtilTreeNode
DynamicUtilTreeNode может оборачивать векторы/хеш-таблицы/массивы/строки и создавать соответствующие узлы дерева, если это необходимо.
JTree.EmptySelectionModel
EmptySelectionModel является TreeSelectionModel моделью, которая не позволяет ничего выделять.
JViewport
«Область просмотра» или «иллюминатор», через который вы видите основную информацию.
JWindow
Окно — это контейнер, который может отображаться в любом месте рабочего стола пользователя.
KeyStroke
KeyStroke представляет действие клавиши на клавиатуре или эквивалентное устройство ввода.
LayoutFocusTraversalPolicy
Политика обхода фокуса, сортирующая компоненты на основе их размера, положения и ориентации.
LayoutStyle
LayoutStyle предоставляет информацию о том, как размещать компоненты.
LayoutStyle.ComponentPlacement
ComponentPlacement — это перечисление возможных способов размещения двух компонентов относительно друг друга.
ListCellRenderer<E>
Определяет компоненты, которые могут использоваться как «штампы» для рисования ячеек в JList.
ListModel<E>
Этот интерфейс определяет методы, которые компоненты, такие как JList, используют для получения значения каждой ячейки в списке и длины списка.
ListSelectionModel
Этот интерфейс представляет текущее состояние выбора для любого из компонентов, которые отображают список значений со стабильными индексами.
LookAndFeel
LookAndFeel, как следует из названия, инкапсулирует вид и ощущения.
MenuElement
Любой компонент, который может быть помещён в меню, должен реализовывать этот интерфейс.
MenuSelectionManager
MenuSelectionManager владеет выбором в иерархии меню.
MutableComboBoxModel<E>
Изменяемая версия ComboBoxModel.
OverlayLayout
Менеджер компоновки для размещения компонентов друг над другом.
Painter<T>
Делегат рисования.
Popup
Поп-ап используется для отображения Component пользователю, обычно поверх всех других Component в конкретной иерархии контейнеров.
PopupFactory
PopupFactory, как следует из названия, используется для получения экземпляров Popup.
ProgressMonitor
Класс для мониторинга прогресса какой-либо операции.
ProgressMonitorInputStream
Отслеживает ход чтения из некоторого потока InputStream.
Renderer
Определяет требования к объекту, ответственному за «рендеринг» (отображение) значения.
RepaintManager
Этот класс управляет запросами перерисовки, позволяя минимизировать количество перерисовок, например, объединяя несколько запросов в одну перерисовку для членов древовидной структуры компонента.
RootPaneContainer
Этот интерфейс реализуется компонентами, имеющими единственного дочернего элемента JRootPane: JDialog, JFrame, JWindow, JApplet, JInternalFrame.
RowFilter<M,I>
RowFilter используется для фильтрации записей из модели, чтобы они не отображались в представлении.
RowFilter.ComparisonType
Перечисление возможных значений сравнения, поддерживаемых некоторыми из стандартных RowFilter.
RowFilter.Entry<M,I>
Объект Entry передаётся экземплярам RowFilter, позволяя фильтру получить значение данных записи и, таким образом, определить, следует ли отображать запись.
RowSorter<M>
RowSorter предоставляет основу для сортировки и фильтрации.
RowSorter.SortKey
SortKey описывает порядок сортировки для определённого столбца.
Scrollable
Интерфейс, предоставляющий информацию контейнеру прокрутки, например, JScrollPane.
ScrollPaneConstants
Константы, используемые с компонентом JScrollPane.
ScrollPaneLayout
Менеджер компоновки, используемый JScrollPane.
ScrollPaneLayout.UIResource
Ресурс пользовательского интерфейса для ScrollPaneLayout.
SingleSelectionModel
Модель, поддерживающая не более одного индексированного выбора.
SizeRequirements
Для удобства менеджеров компоновки, вычисляет информацию о размере и положении компонентов.
SizeSequence
Объект SizeSequence эффективно поддерживает упорядоченный список размеров и соответствующих положений.
SortingFocusTraversalPolicy
Политика обхода фокуса, определяющая порядок обхода, сортируя компоненты цикла обхода фокуса на основе заданного компаратора.
SortOrder
SortOrder — перечисление возможных порядков сортировки.
SpinnerDateModel
SpinnerModel для последовательностей Date.
SpinnerListModel
Простое реализация SpinnerModel, значения которой определяются массивом или List.
SpinnerModel
Модель для потенциально неограниченной последовательности значений объектов.
SpinnerNumberModel
SpinnerModel для последовательностей чисел.
Spring
Экземпляр класса Spring хранит три свойства, которые характеризуют его поведение: минимальное, предпочтительное и максимальное значения.
SpringLayout
SpringLayout компонует дочерние элементы своего контейнера в соответствии с набором ограничений.
SpringLayout.Constraints
Объект Constraints хранит ограничения, которые регулируют изменение размера и положения компонента в контейнере, управляемом SpringLayout.
SwingConstants
Коллекция констант, обычно используемых для позиционирования и ориентации компонентов на экране.
SwingContainer
Аннотация, используемая для указания некоторой информации, связанной со Swing, для автоматически сгенерированных классов BeanInfo.
SwingUtilities
Коллекция утилитных методов для Swing.
SwingWorker<T,V>
Абстрактный класс для выполнения длительных задач взаимодействия с GUI в фоновом потоке.
SwingWorker.StateValue
Значения для свойства state.
END_OF_DOCUMENT_MARKER
Timer
Вызывает один или несколько ActionEvent с заданными интервалами.
ToolTipManager
Управляет всеми ToolTips в системе.
TransferHandler
Этот класс используется для обработки передачи Transferable к компонентам Swing и из них.
TransferHandler.DropLocation
Представляет место, куда следует вставить перетаскиваемые данные.
TransferHandler.TransferSupport
Этот класс инкапсулирует все необходимые детали передачи данных в буфер обмена или при перетаскивании, а также позволяет настраивать аспекты опыта перетаскивания.
UIClientPropertyKey
Этот интерфейс используется только для маркировки ключей клиентских свойств для JComponent, устанавливаемых UI, которые необходимо очищать при изменении L&F и сериализации.
UIDefaults
Таблица значений по умолчанию для компонентов Swing.
UIDefaults.ActiveValue
Этот класс позволяет хранить запись в таблице значений по умолчанию, которая создается каждый раз при обращении к одному из getXXX(key) методов.
UIDefaults.LazyInputMap
LazyInputMap создаст InputMap в методе createValue.
UIDefaults.LazyValue
Этот класс позволяет хранить запись в таблице значений по умолчанию, которая создается только при первом обращении к одному из getXXX(key) методов.
UIDefaults.ProxyLazyValue
Этот класс предоставляет реализацию LazyValue, которая может использоваться для отсрочки загрузки класса для создания экземпляра.
UIManager
UIManager управляет текущей внешностью, набором доступных внешних видов, PropertyChangeListeners уведомляются при изменении внешнего вида, внешние значения по умолчанию и удобные методы для получения различных значений по умолчанию.
UIManager.LookAndFeelInfo
Предоставляет небольшую информацию об установленной LookAndFeel для настройки меню или начальной настройки приложения.
UnsupportedLookAndFeelException
Исключение, указывающее, что запрошенные классы управления внешним видом не присутствуют на системе пользователя.
ViewportLayout
Менеджер компоновки по умолчанию для JViewport.
WindowConstants
Константы, используемые для управления операцией закрытия окна.

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.desktop/javax/swing/package-summary.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API