Spec-Zone.ru › OpenJDK 17

Пакет 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
  • Руководство по Java
  • Онлайн-обучение на Java Developer Connection SM
  • Главная страница Java Foundation Classes (JFC)
Пакет Описание
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
A 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, кроме контейнеров верхнего уровня.
JDesktopPane
Контейнер, используемый для создания интерфейса с несколькими документами или виртуального рабочего стола.
END_OF_DOCUMENT_MARKER
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.
JTree.DynamicUtilTreeNode
DynamicUtilTreeNode может оборачивать векторы/хеш-таблицы/массивы/строки и создавать соответствующие дочерние узлы дерева по мере необходимости.
JTree.EmptySelectionModel
EmptySelectionModel является TreeSelectionModel, который не позволяет ничего выбирать.
END_OF_DOCUMENT_MARKER
JViewport
Виртуальное окно или "иллюминатор", через который вы видите базовую информацию.
JWindow
A 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
Политика перехода фокуса, которая определяет порядок перехода, сортируя компоненты цикла перехода фокуса на основе заданного Comparator.
SortOrder
SortOrder — это перечисление возможных порядков сортировки.
SpinnerDateModel
A SpinnerModel для последовательностей Date.
SpinnerListModel
Простая реализация SpinnerModel, значения которой определяются массивом или List.
SpinnerModel
Модель для потенциально неограниченной последовательности значений объектов.
SpinnerNumberModel
A SpinnerModel для последовательностей чисел.
Spring
Экземпляр класса Spring хранит три свойства, которые характеризуют его поведение: минимальное, предпочтительное и максимальное значения.
SpringLayout
A SpringLayout компонует дочерние элементы своего связанного контейнера в соответствии с набором ограничений.
SpringLayout.Constraints
Объект Constraints содержит ограничения, которые управляют способом изменения размера и положения компонента в контейнере, управляемом SpringLayout.
SwingConstants
Коллекция констант, обычно используемых для позиционирования и ориентации компонентов на экране.
SwingContainer
Аннотация, используемая для указания некоторой информации, связанной со Swing, для автоматически генерируемых BeanInfo классов.
SwingUtilities
Коллекция вспомогательных методов для Swing.
SwingWorker<T,V>
Абстрактный класс для выполнения длительных задач взаимодействия с графическим интерфейсом пользователя в фоновом потоке.
SwingWorker.StateValue
Значения для привязанного свойства state.
Timer
Вызывает один или несколько ActionEvent в указанные интервалы.
ToolTipManager
Управляет всеми подсказками ToolTips в системе.
TransferHandler
Этот класс используется для обработки передачи Transferable в и из компонентов Swing.
TransferHandler.DropLocation
Представляет собой место, куда следует вставить переданные данные.
END_OF_DOCUMENT_MARKER
TransferHandler.TransferSupport
Этот класс инкапсулирует все необходимые детали передачи буфера обмена или перетаскивания, а также позволяет настраивать аспекты взаимодействия при перетаскивании.
UIClientPropertyKey
Этот интерфейс используется только для маркировки ключей для свойств клиента для JComponent устанавливаемых UI, которые необходимо очистить при изменении L&F и сериализации.
UIDefaults
Таблица значений по умолчанию для компонентов Swing.
UIDefaults.ActiveValue
Этот класс позволяет хранить запись в таблице значений по умолчанию, которая создается каждый раз при её поиске с помощью одного из getXXX(key) методов.
UIDefaults.LazyInputMap
LazyInputMap будет создавать InputMap в своём методе %%%CODE_BLOCK_136%%.
UIDefaults.LazyValue
Этот класс позволяет хранить запись в таблице значений по умолчанию, которая создается только при первом обращении к ней с помощью одного из getXXX(key) методов.
UIDefaults.ProxyLazyValue
Этот класс предоставляет реализацию %%%CODE_BLOCK_138%%, которая может быть использована для отложенной загрузки класса для экземпляра, который должен быть создан.
UIManager
UIManager управляет текущей внешностью, набором доступных внешних видов, PropertyChangeListeners которые уведомляются при изменении внешности, внешние виды по умолчанию и удобные методы для получения различных значений по умолчанию.
UIManager.LookAndFeelInfo
Предоставляет небольшую информацию об установленной LookAndFeel для настройки меню или начальной настройки приложения.
UnsupportedLookAndFeelException
Исключение, указывающее на то, что запрошенные классы управления внешним видом отсутствуют на системе пользователя.
ViewportLayout
Менеджер компоновки по умолчанию для JViewport.
WindowConstants
Константы, используемые для управления операцией закрытия окна.

© 1993, 2021, 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/17/docs/api/java.desktop/javax/swing/package-summary.html

Spec-Zone.ru

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