Пакет javax.swing
Предоставляет набор «лёгких» (написанных полностью на языке Java) компонентов, которые, насколько это возможно, работают одинаково на всех платформах.
См.: Описание
| Интерфейс | Описание |
|---|---|
| Action | Интерфейс |
| BoundedRangeModel | Определяет модель данных, используемую компонентами, такими как |
| ButtonModel | Модель состояний для кнопок. |
| CellEditor | Этот интерфейс определяет методы, которые должен реализовывать любой общий редактор. |
| ComboBoxEditor | Компонент-редактор, используемый для компонентов JComboBox. |
| ComboBoxModel<E> | Модель данных для раскрывающегося списка. |
| DesktopManager | Объекты DesktopManager принадлежат объекту JDesktopPane. |
| Icon | Небольшое изображение фиксированного размера, обычно используемое для украшения компонентов. |
| JComboBox.KeySelectionManager | Интерфейс, определяющий |
| ListCellRenderer<E> | Идентифицирует компоненты, которые могут использоваться в качестве «штампов» для отрисовки ячеек в JList. |
| ListModel<E> | Этот интерфейс определяет методы, которые компоненты, такие как JList, используют для получения значения каждой ячейки в списке и длины списка. |
| ListSelectionModel | Этот интерфейс представляет текущее состояние выделения для любого из компонентов, отображающих список значений со стабильными индексами. |
| MenuElement | Любой компонент, который может быть размещён в меню, должен реализовывать этот интерфейс. |
| MutableComboBoxModel<E> | Изменяемая версия |
| Painter<T> | Делегат отрисовки. |
| Renderer | Определяет требования к объекту, отвечающему за «рендеринг» (отображение) значения. |
| RootPaneContainer | Этот интерфейс реализуется компонентами, у которых есть единственный дочерний объект JRootPane: JDialog, JFrame, JWindow, JApplet, JInternalFrame. |
| Scrollable | Интерфейс, который предоставляет информацию контейнеру прокрутки, например, JScrollPane. |
| ScrollPaneConstants | Константы, используемые с компонентом JScrollPane. |
| SingleSelectionModel | Модель, поддерживающая не более одного индексированного выделения. |
| SpinnerModel | Модель для потенциально неограниченной последовательности значений объектов. |
| SwingConstants | Коллекция констант, обычно используемых для позиционирования и ориентации компонентов на экране. |
| UIDefaults.ActiveValue | Этот класс позволяет хранить запись в таблице параметров по умолчанию, которая создается каждый раз, когда она вызывается с одним из методов |
| UIDefaults.LazyValue | Этот класс позволяет хранить запись в таблице параметров по умолчанию, которая не создается до первого вызова с одним из методов |
| WindowConstants | Константы, используемые для управления операцией закрытия окна. |
| Класс | Описание |
|---|---|
| AbstractAction | Этот класс предоставляет стандартные реализации для интерфейса JFC |
| AbstractButton | Определяет общее поведение для кнопок и пунктов меню. |
| AbstractCellEditor | Базовый класс для |
| AbstractListModel<E> | Абстрактное определение модели данных, которая предоставляет |
| AbstractSpinnerModel | Этот класс предоставляет часть ChangeListener интерфейса SpinnerModel, которая должна быть подходящей для большинства конкретных реализаций SpinnerModel. |
| ActionMap |
|
| BorderFactory | Класс-фабрика для предоставления стандартных объектов |
| Box | Легковесный контейнер, использующий объект BoxLayout в качестве менеджера компоновки. |
| Box.Filler | Реализация легковесного компонента, участвующего в компоновке, но не имеющего представления. |
| BoxLayout | Менеджер компоновки, позволяющий расположить несколько компонентов вертикально или горизонтально. |
| ButtonGroup | Этот класс используется для создания области множественного исключения для набора кнопок. |
| CellRendererPane | Этот класс вставляется между рендерерами ячеек и компонентами, которые их используют. |
| ComponentInputMap |
|
| DebugGraphics | Подкласс Graphics, поддерживающий отладку графики. |
| DefaultBoundedRangeModel | Обобщённая реализация BoundedRangeModel. |
| DefaultButtonModel | Стандартная реализация модели данных компонента |
| DefaultCellEditor | Стандартный редактор для ячеек таблиц и деревьев. |
| DefaultComboBoxModel<E> | Стандартная модель для раскрывающихся списков. |
| DefaultDesktopManager | Это реализация |
| DefaultFocusManager | Этот класс устарел в API фокусировки версии 1.4. |
| DefaultListCellRenderer | Отображает элемент в списке. |
| DefaultListCellRenderer.UIResource | Подкласс DefaultListCellRenderer, реализующий UIResource. |
| DefaultListModel<E> | Этот класс приблизительно реализует API |
| DefaultListSelectionModel | Стандартная модель данных для выбора элементов в списке. |
| DefaultRowSorter<M,I> | Реализация |
| DefaultRowSorter.ModelWrapper<M,I> |
|
| DefaultSingleSelectionModel | Обобщенная реализация SingleSelectionModel. |
| FocusManager | Этот класс устарел в API фокусировки версии 1.4. |
| GrayFilter | Фильтр изображения, который "отключает" изображение, преобразуя его в оттенки серого и осветляя пиксели изображения. |
| GroupLayout |
|
| ImageIcon | Реализация интерфейса Icon, рисующая значки из изображений. |
| InputMap |
|
| InputVerifier | Цель этого класса - помочь клиентам обеспечить плавную навигацию по фокусу в GUI с текстовыми полями. |
| InternalFrameFocusTraversalPolicy | FocusTraversalPolicy, который может по желанию предоставить алгоритм определения начального компонента JInternalFrame. |
| JApplet | Расширенная версия |
| JButton | Реализация "нажимаемой" кнопки. |
| JCheckBox | Реализация флажка — элемента, который может быть выбран или убран, и отображает своё состояние пользователю. |
| JCheckBoxMenuItem | Пункт меню, который может быть выбран или убран. |
| JColorChooser |
|
| JComboBox<E> | Компонент, объединяющий кнопку или поле редактирования и раскрывающийся список. |
| JComponent | Базовый класс для всех компонентов Swing, кроме контейнеров верхнего уровня. |
| JDesktopPane | Контейнер, используемый для создания многодокументного интерфейса или виртуального рабочего стола. |
| JDialog | Основной класс для создания диалогового окна. |
| JEditorPane | Текстовый компонент для редактирования различных типов контента. |
| JFileChooser |
|
| JFormattedTextField |
|
| JFormattedTextField.AbstractFormatter | Экземпляры |
| JFormattedTextField.AbstractFormatterFactory | Экземпляры |
| JFrame | Расширенная версия |
| JInternalFrame | Легковесный объект, предоставляющий многие функции обычного окна, включая перетаскивание, закрытие, отображение в виде значка, изменение размера, отображение заголовка и поддержку панели меню. |
| JInternalFrame.JDesktopIcon | Этот компонент представляет собой иконное представление |
| JLabel | Область отображения для короткой текстовой строки, изображения или обоих. |
| JLayer<V extends Component> |
|
| JLayeredPane |
|
| JList<E> | Компонент, отображающий список объектов и позволяющий пользователю выбрать один или несколько элементов. |
| JList.DropLocation | Подкласс |
| JMenu | Реализация меню — всплывающего окна, содержащего |
| JMenuBar | Реализация панели меню. |
| JMenuItem | Реализация элемента меню. |
| JOptionPane |
|
| JPanel |
|
| JPasswordField |
|
| JPopupMenu | Реализация всплывающего меню — небольшого окна, которое всплывает и отображает ряд вариантов. |
| JPopupMenu.Separator | Разделитель, специфичный для всплывающих меню. |
| JProgressBar | Компонент, визуально отображающий ход выполнения какой-либо задачи. |
| Радиокнопка | Реализация радиокнопки — элемента, который можно выбрать или сбросить и который отображает свое состояние пользователю. |
| Элемент меню радиокнопки | Реализация элемента меню радиокнопки. |
| JRootPane | Легковесный контейнер, используемый за кулисами |
| JScrollBar | Реализация полосы прокрутки. |
| JScrollPane | Обеспечивает возможность прокрутки легковесного компонента. |
| JSeparator |
|
| JSlider | Компонент, позволяющий пользователю графически выбрать значение, перемещая ползунок в заданном интервале. |
| JSpinner | Поле ввода одной строки, позволяющее пользователю выбрать число или значение объекта из упорядоченной последовательности. |
| JSpinner.DateEditor | Редактор для |
| JSpinner.DefaultEditor | Простой базовый класс для более специализированных редакторов, отображающий только для чтения текущее значение модели с |
| JSpinner.ListEditor | Редактор для |
| JSpinner.NumberEditor | Редактор для |
| JSplitPane |
|
| JTabbedPane | Компонент, позволяющий пользователю переключаться между группой компонентов, щелкнув по вкладке с заданным заголовком и/или значком. |
| JTable |
|
| JTable.DropLocation | Подкласс |
| JTextArea |
|
| JTextField |
|
| JTextPane | Текстовый компонент, который может быть помечен атрибутами, отображаемыми графически. |
| JToggleButton | Реализация двухсостоятельной кнопки. |
| JToggleButton.ToggleButtonModel | Модель ToggleButton |
| JToolBar |
|
| JToolBar.Separator | Разделитель для панели инструментов. |
| JToolTip | Используется для отображения "Подсказки" для компонента. |
| JTree | Элемент управления, отображающий набор иерархических данных в виде схемы. |
| JTree.DropLocation | Подкласс |
| JTree.DynamicUtilTreeNode |
|
| JTree.EmptySelectionModel |
|
| JViewport | «Представление» или «иллюминатор», через который вы видите скрытую информацию. |
| JWindow |
|
| KeyStroke | KeyStroke представляет собой действие нажатия клавиши на клавиатуре или эквивалентное устройство ввода. |
| LayoutFocusTraversalPolicy | Политика перехода фокуса, которая сортирует компоненты на основе их размера, положения и ориентации. |
| LayoutStyle |
|
| LookAndFeel |
|
| MenuSelectionManager | MenuSelectionManager владеет выделением в иерархии меню. |
| OverlayLayout | Менеджер компоновки для расположения компонентов поверх друг друга. |
| Popup | Поп-упа используются для отображения |
| PopupFactory |
|
| ProgressMonitor | Класс для мониторинга выполнения операции. |
| ProgressMonitorInputStream | Мониторинг прогресса чтения из некоторого потока InputStream. |
| RepaintManager | Этот класс управляет запросами на перерисовку, позволяя минимизировать количество перерисовок, например, объединяя несколько запросов в одну перерисовку для элементов древовидной структуры компонента. |
| RowFilter<M,I> |
|
| RowFilter.Entry<M,I> | Объект |
| RowSorter<M> |
|
| RowSorter.SortKey | SortKey описывает порядок сортировки для конкретного столбца. |
| ScrollPaneLayout | Менеджер компоновки, используемый |
| ScrollPaneLayout.UIResource | Версия UI ресурса |
| SizeRequirements | Для удобства менеджеров компоновки, вычисляет информацию о размере и позиции компонентов. |
| SizeSequence | Объект |
| SortingFocusTraversalPolicy | Политика перехода фокуса, которая определяет порядок перехода, сортируя компоненты цикла перехода фокуса на основе заданного сравнителя. |
| SpinnerDateModel |
|
| SpinnerListModel | Простая реализация |
| SpinnerNumberModel |
|
| Spring | Экземпляр класса |
| SpringLayout |
|
| SpringLayout.Constraints | Объект |
| SwingUtilities | Коллекция служебных методов для Swing. |
| SwingWorker<T,V> | Абстрактный класс для выполнения длительных задач взаимодействия с графическим интерфейсом в фоновом потоке. |
| Timer | Вызывает один или несколько |
| ToolTipManager | Управляет всеми |
| TransferHandler | Этот класс используется для обработки передачи |
| TransferHandler.DropLocation | Представляет местоположение, куда должны быть вставлены перетащенные данные. |
| TransferHandler.TransferSupport | Этот класс инкапсулирует все соответствующие детали передачи буфера обмена или перетаскивания, а также позволяет настроить аспекты пользовательского опыта перетаскивания. |
| UIDefaults | Таблица значений по умолчанию для компонентов Swing. |
| UIDefaults.LazyInputMap |
|
| UIDefaults.ProxyLazyValue | Этот класс предоставляет реализацию |
| UIManager |
|
| UIManager.LookAndFeelInfo | Предоставляет небольшую информацию об установленной |
| ViewportLayout | Менеджер компоновки по умолчанию для |
| Перечисление | Описание |
|---|---|
| DropMode | Режимы перетаскивания, используемые для определения метода, с помощью которого компонент отслеживает и указывает местоположение падения во время перетаскивания. |
| GroupLayout.Alignment | Перечисление возможных способов, которыми |
| JTable.PrintMode | Режимы печати, используемые при печати |
| LayoutStyle.ComponentPlacement |
|
| RowFilter.ComparisonType | Перечисление возможных значений сравнения, поддерживаемых некоторыми из стандартных |
| SortOrder | SortOrder — это перечисление возможных порядков сортировки. |
| SwingWorker.StateValue | Значения для |
| Исключение | Описание |
|---|---|
| UnsupportedLookAndFeelException | Исключение, указывающее, что запрошенные классы управления внешним видом отсутствуют на системе пользователя. |
Описание пакета 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 должно изменяться только в потоке обработки событий. Если вы изменяете модель в другом потоке, у вас есть риск возникновения исключений и возможной ошибки отображения. Поскольку все события доставляются в потоке обработки событий, необходимо соблюдать осторожность при обработке событий. В частности, длительная задача, такая как сетевое ввод-вывод или вычисления, выполняемая в потоке обработки событий, блокирует поток обработки событий, не позволяя ему обрабатывать другие события. Пока поток обработки событий заблокирован, приложение не реагирует на ввод пользователя. См. SwingWorker для предпочтительного способа выполнения таких задач при работе с Swing.
Дополнительную информацию по этой теме можно найти в учебном пособии по Swing, в частности в разделе Многопоточность в Swing.
Связанная документация
Для обзоров, учебных пособий, примеров, руководств и другой документации см.:
- Swing Connection
- The Java Tutorial
- Онлайн обучение на Java Developer ConnectionSM
- Java Foundation Classes (JFC) главная страница
© 1993, 2020, 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.