Spec-Zone.ru › OpenJDK 24

Пакет javax.swing

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

Политика потоков 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
Since:
1.2
Пакет Описание
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 API 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
Версия UI-ресурса 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>
Абстрактный класс для выполнения длительных задач взаимодействия с графическим интерфейсом в фоновом потоке.
SwingWorker.StateValue
Значения для свойства state.
END_OF_DOCUMENT_MARKER
Timer
Вызывает одну или несколько ActionEvent через заданные интервалы.
ToolTipManager
Управляет всеми ToolTips в системе.
TransferHandler
Этот класс используется для обработки передачи Transferable к компонентам Swing и из них.
TransferHandler.DropLocation
Представляет местоположение, в которое следует вставить переносимые данные.
TransferHandler.TransferSupport
Этот класс инкапсулирует все необходимые детали передачи данных в буфер обмена или при перетаскивании, а также позволяет настраивать аспекты опыта перетаскивания.
UIClientPropertyKey
Этот интерфейс используется только для маркировки ключей для свойств клиента для JComponent, устанавливаемых пользовательским интерфейсом, которые необходимо очищать при изменении 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/swing/package-summary.html

Spec-Zone.ru

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