Spec-Zone .ru
спецификации, руководства, описания, API
След: Создание GUI С JFC/Swing
Урок: Используя Компоненты Swing
Класс JComponent
Домашняя страница > Создание GUI С JFC/Swing > Используя Компоненты Swing

Класс JComponent

За исключением высокоуровневых контейнеров, все компоненты Swing, имена которых начинаются "с J", убывают от JComponent class. Например, JPanel, JScrollPane, JButton, и JTable все наследовались от JComponent. Однако, JFrame и JDialog не делайте, потому что они реализуют высокоуровневые контейнеры.

JComponent class расширяется Container class, который непосредственно расширяется Component. Component class включает все от обеспечения подсказок расположения к поддержке рисования и событий. Container У class есть поддержка того, чтобы добавить компоненты к контейнеру и разметить их. Таблицы API этого раздела суммируют чаще всего используемые методы Component и Container, так же как JComponent.

Функции JComponent

JComponent class предоставляет следующую функциональность своим потомкам:

Подсказки
Определяя строку с setToolTipText метод, можно обеспечить справку к пользователям компонента. Когда паузы курсора по компоненту, указанная строка выводится на экран в маленьком окне, которое появляется около компонента. См., Как Использовать Подсказки для получения дополнительной информации.
Рисование и границы
setBorder метод позволяет Вам определять границу, которую компонент выводит на экран вокруг его краев. Чтобы нарисовать внутреннюю часть компонента, переопределите paintComponent метод. См., Как Использовать Границы и Выполнение Пользовательского Рисования для деталей.
Сменный стиль всего приложения
Негласно, каждый JComponent у объекта есть соответствие ComponentUI объект, который выполняет весь рисунок, обработку событий, определение размера, и так далее для этого JComponent. Точно, который ComponentUI объект используется, зависит от текущего стили, который можно установить использование UIManager.setLookAndFeel метод. См., Как Установить Стиль для деталей.
Пользовательские свойства
Можно связать одно или более свойств (пары имени/объекта) с любым JComponent. Например, менеджер по расположению мог бы использовать свойства, чтобы связать ограничительный объект с каждым JComponent это управляет. Вы помещаете и получаете свойства, используя putClientProperty и getClientProperty методы. Для получения общей информации о свойствах, см. Свойства.
Поддержка расположения
Хотя Component class обеспечивает методы подсказки расположения такой как getPreferredSize и getAlignmentX, это не обеспечивает способа установить эти подсказки расположения, за исключением создания подкласса и переопределения методов. Дать Вам другой способ установить подсказки расположения, JComponent class добавляет методы метода set — setMinimumSize, setMaximumSize, setAlignmentX, и setAlignmentY. См. Разметку Компонентов В пределах Контейнера для получения дополнительной информации.
Поддержка доступности
JComponent class обеспечивает API, и основная функциональность, чтобы помочь вспомогательным технологиям, таким как средства чтения с экрана получите информацию от компонентов Swing, Для получения дополнительной информации о доступности, видьте Как к Support Assistive Technologies.
Поддержка перетаскивает и отбрасывает
JComponent class обеспечивает API, чтобы установить обработчик передачи компонента, который является основанием для Swing, перетаскивают и отбрасывают поддержку. См. Введение в DnD для деталей.
Двойная буферизация
Двойная буферизация приглаживает экранное рисование. Для получения дополнительной информации см. Выполняющее Пользовательское Рисование.
Привязки клавиш
Эта функция заставляет компоненты реагировать, когда пользователь нажимает клавишу на клавиатуре. Например, во многих смотрят и чувства, когда у кнопки есть фокус, вводя клавишу "Пробел" эквивалентен щелчку мышью по кнопке. Стиль автоматически устанавливает привязку между нажатием и выпуском клавиши "Пробел" и получающихся эффектов на кнопку. Для получения дополнительной информации о привязках клавиш, см., Как Использовать Привязки клавиш.

API JComponent

JComponent class обеспечивает много новых методов и наследовал много методов от Component и Container. Следующие таблицы суммируют методы, которые мы используем наиболее.

Настройка Компонентного Появления
Метод Цель
освободите setBorder (Граница)
Ограничьте getBorder ()
Набор или получает границу компонента. См., Как Использовать Границы для деталей.
освободите setForeground (Цвет)
освободите setBackground (Цвет)
Установите цвет переднего плана или цвет фона для компонента. Передний план является обычно цветом, используемым, чтобы потянуть текст в компоненте. Фон является (не удивительно) цветом фоновых областей компонента, предполагая, что компонент непрозрачен.
Покрасьте getForeground ()
Покрасьте getBackground ()
Получите цвет переднего плана или цвет фона для компонента.
освободите (булев) setOpaque
булев isOpaque ()
Набор или добирается, непрозрачен ли компонент. Непрозрачный компонент заполняет свой фон его цветом фона.
освободите setFont (Шрифт)
Шрифт getFont ()
Набор или получает шрифт компонента. Если шрифт не был установлен для компонента, шрифт его родителя возвращается.
освободите setCursor (Курсор)
Курсор getCursor ()
Набор или вывел на экран курсор по компоненту и всем компонентам, которые это содержит (за исключением дочерних элементов, которым установили их собственный курсор). Пример: aPanel.setCursor( Cursor.getPredefinedCursor( Cursor.WAIT_CURSOR));
Установка и Получение Компонентного государства
Метод Цель
освободите setComponentPopupMenu (JPopupMenu) Наборы JPopupMenu для этого JComponent. UI ответственен за то, что зарегистрировал привязку и добавил необходимых слушателей так, что JPopupMenu будет показан в подходящее время. Когда JPopupMenu показывается зависит от стили: некоторые могут показать это на событии от нажатия мыши, некоторые могут включить привязке клавиш.

Если popup нуль, и getInheritsPopupMenu возвраты true, тогда getComponentPopupMenu будет делегирован к родителю. Это предусматривает способ заставить все дочерние компоненты наследоваться popupmenu из родителя.
освободите setTransferHandler (TransferHandler)
TransferHandler getTransferHandler ()
Набор или удаляет transferHandler свойство. TransferHandler поддерживает данные обмена через сокращение, копию, или вставку к/от буферу обмена также перетаскивание и отбрасывание. См. Введение в DnD для большего количества деталей.
освободите setToolTipText (Строка) Установите текст, чтобы вывести на экран в подсказке. См., Как Использовать Подсказки для получения дополнительной информации.
освободите setName (Строка)
Представьте getName в виде строки ()
Набор или получает имя компонента. Это может быть полезно, когда Вы должны связать текст с компонентом, который не выводит на экран текст.
булев isShowing () Определите, показывает ли компонент на экране. Это означает, что компонент должен быть видимым, и это должно быть в контейнере, который видим и показывающий.
освободите (булев) setEnabled
булев isEnabled ()
Набор или добирается, включается ли компонент. Включенный компонент может ответить на ввод данных пользователем и генерировать события.
освободите (булев) setVisible
булев isVisible ()
Набор или добирается, видим ли компонент. Компоненты первоначально видимы, за исключением высокоуровневых компонентов.
Обработка Событий
(см.
Пишущих Слушателей События для деталей),
Метод Цель
освободите addHierarchyListener (hierarchyListener l)
освободите removeHierarchyListener (hierarchyListener l)
Добавляет или удаляет указанного слушателя иерархии, чтобы получить иерархию измененные события от этого компонента, когда иерархия, которой этот контейнер принадлежит изменения. Если слушатель l является нулем, никакое исключение не выдается, и никакое действие не выполняется.
освободите addMouseListener (MouseListener)
освободите removeMouseListener (MouseListener)
Добавьте или удалите слушателя мыши или от компонента. Слушатели мыши уведомляются, когда пользователь использует мышь, чтобы взаимодействовать со слушаемым компонент.
освободите addMouseMotionListener (MouseMotionListener)
освободите removeMouseMotionListener (MouseMotionListener)
Добавьте или удалите слушателя движения мыши или от компонента. Слушатели движения мыши уведомляются, когда пользователь перемещает мышь в пределах слушаемого границы компонента.
освободите addKeyListener (KeyListener)
освободите removeKeyListener (KeyListener)
Добавьте или удалите ключевого слушателя или от компонента. Ключевые слушатели уведомляются, когда у пользовательских типов в клавиатуре и слушаемом компонент есть клавиатурный фокус.
освободите addComponentListener (ComponentListener)
освободите removeComponentListener (ComponentListener)
Добавьте или удалите компонентного слушателя или от компонента. Компонентные слушатели уведомляются, когда слушаемый компонент скрывается, показывается, перемещается, или изменяется.
булев содержит (интервал, интервал)
булев содержит (Точка)
Определите, является ли указанная точка в пределах компонента. Параметр должен быть определен с точки зрения системы координат компонента. Два int параметры определяют x и координаты y, соответственно.
Компонент getComponentAt (интервал, интервал)
Компонент getComponentAt (Точка)
Возвратите компонент, который содержит указанный x, y позиция. Самый верхний дочерний компонент возвращается в случае, где компоненты накладываются. Это определяется, находя компонент, самый близкий к индексированию 0, который утверждает, что содержал данную точку через Component.contains().
Компонент setComponentZOrder (компонентный аккомпанемент, интервал индексирует),
Перемещается указанный компонент к указанному z-порядку индексируют в контейнере.

Если компонент является дочерним элементом некоторого другого контейнера, он удаляется из того контейнера прежде, чем быть добавленным к этому контейнеру. Важное различие между этим методом и java.awt.Container.add(Component, int) тот этот метод, не вызывает removeNotify на компоненте, удаляя это из его предыдущего контейнера, если необходимый и когда позволено базовой собственной системой управления окнами. Таким образом, если у компонента есть клавиатурный фокус, он уделяет внимание когда перемещено в новую позицию.

Отметьте:  z-порядок определяет порядок, что компоненты красятся. Компонент с самым высоким z-порядком красит сначала и компонент с самыми низкими красками z-порядка последний. Где компоненты накладываются, компонент с более низкими красками z-порядка по компоненту с более высоким z-порядком.

Компонент getComponentZOrder (компонентный аккомпанемент)
Возвращается z-порядок индексируют компонента в контейнере. Чем выше компонент находится в иерархии z-порядка, тем ниже индексировать. Компонент с самым низким z-порядком индексирует, красится последним, прежде всего другие дочерние компоненты.
Рисование Компонентов
(см.
Выполняющее Пользовательское Рисование для деталей),
Метод Цель
освободите перекрашивание ()
освободите перекрашивание (интервал, интервал, интервал, интервал)
Запросите, чтобы все или часть компонента были перекрашены. Четыре int параметры определяют границы (x, y, width, height, в том порядке) прямоугольника, который будет нарисован.
освободите перекрашивание (Прямоугольник) Запросите, чтобы указанная область в пределах компонента была перекрашена.
пусто подтвердите () Запросите, чтобы компонент и его контейнеры, на которые влияют, были размечены снова. Недопустимо обычно должны быть вызывать этот метод, если Вы явно не изменяете подсказки размера/выравнивания компонента после того, как это видимо, или измените иерархию включения после того, как это видимо. Всегда вызывайте repaint после revalidate.
освободите paintComponent (Графика) Нарисуйте компонент. Переопределите этот метод, чтобы реализовать рисование для пользовательских компонентов.
Контакт с Иерархией Включения
(см.
Используя Высокоуровневые Контейнеры для получения дополнительной информации),
Метод Цель
Компонент добавляет (Компонент)
Компонент добавляет (Компонент, интервал)
пусто добавьте (Компонент, Объект)
Добавьте указанный компонент к этому контейнеру. Версия с одним параметром этого метода добавляет компонент до конца контейнера. Когда существующий, int параметр указывает на позицию нового компонента в пределах контейнера. Когда существующий, Object параметр предоставляет ограничения расположения текущему менеджеру по расположению.
пусто удалите (интервал)
пусто удалите (Компонент)
освободите removeAll ()
Удалите один из или все компоненты от этого контейнера. Когда существующий, int параметр указывает на позицию в пределах контейнера компонента, чтобы удалить.
JRootPane getRootPane () Получите корневую область, которая содержит компонент.
Контейнер getTopLevelAncestor () Получите самый верхний контейнер для компонента — a Window, Applet, или нуль, если компонент не был добавлен ни к какому контейнеру.
Контейнер getParent () Получите непосредственный контейнер компонента.
интервал getComponentCount () Получите число компонентов в этом контейнере.
Компонент getComponent (интервал)
Компонент [] getComponents ()
Получите тот или все компоненты в этом контейнере. int параметр указывает на позицию компонента, чтобы добраться.
Компонент getComponentZOrder (интервал)
Компонент [] getComponentZOrder ()
Возвращается z-порядок индексируют компонента в контейнере. Чем выше компонент находится в иерархии z-порядка, тем ниже индексировать. Компонент с самым низким z-порядком индексирует, красится последним, прежде всего другие дочерние компоненты.
Разметка Компонентов
(см.
Разметку Компонентов В пределах Контейнера для получения дополнительной информации),
Метод Цель
освободите setPreferredSize (Размерность)
освободите setMaximumSize (Размерность)
освободите setMinimumSize (Размерность)
Установите компонент, предпочел, максимум, или минимальный размер, измерился в пикселях. Привилегированный размер указывает на лучший размер для компонента. Компонент должен быть не больше чем его максимальный размер и не меньшим чем его минимальный размер. Знайте, что они - подсказки только и могли бы быть проигнорированы определенными менеджерами по расположению.
Размерность getPreferredSize ()
Размерность getMaximumSize ()
Размерность getMinimumSize ()
Получите привилегированный, максимальный, или минимальный размер компонента, измеренного в пикселях. У многих классов JComponent есть методы метода get и метод set. Для тех не -JComponent подклассы, у которых нет соответствующих методов метода set, можно установить компонент, предпочел, максимум, или минимальный размер, создавая подкласс и переопределяя эти методы.
освободите setAlignmentX (плавание)
освободите setAlignmentY (плавание)
Установите выравнивание вдоль x-или y-оси. Эти значения указывают, как компонент хотел бы быть выровненный относительно других компонентов. Значение должно быть числом между 0 и 1, где 0 представляет выравнивание вдоль источника, 1 выровненный, самое далекое далеко от источника, и 0.5 центрируется и так далее. Знайте, что они - подсказки только и могли бы быть проигнорированы определенными менеджерами по расположению.
пустите в ход getAlignmentX ()
пустите в ход getAlignmentY ()
Получите выравнивание компонента вдоль x-или y-оси. Для не -JComponent подклассы, у которых нет соответствующих методов метода set, можно установить выравнивание компонента, создавая подкласс и переопределяя эти методы.
освободите setLayout (LayoutManager)
LayoutManager getLayout ()
Набор или получает менеджера по расположению компонента. Менеджер по расположению ответственен за калибровку и расположение компонентов в пределах контейнера.
освободите applyComponentOrientation (ComponentOrientation) освободите setComponentOrientation (ComponentOrientation) Установите ComponentOrientation свойство этого контейнера и всех компонентов содержится в пределах этого. См. Установку Ориентации Контейнера для получения дополнительной информации.
Получение Размера и Информации о положении
Метод Цель
интервал getWidth ()
интервал getHeight ()
Получите текущий width или height компонента, измеренного в пикселях.
Размерность getSize ()
Размерность getSize (Размерность)
Получите текущий размер компонента, измеренный в пикселях. При использовании версии с одним параметром этого метода вызывающая сторона ответственна за создание Dimension экземпляр, в котором возвращается результат.
интервал getX ()
интервал getY ()
Получите ток x или y координату источника компонента относительно левого верхнего угла родителя, измеренного в пикселях.
Прямоугольник getBounds ()
Прямоугольник getBounds (Прямоугольник)
Получите границы компонента, измеренного в пикселях. Границы определяют width компонента, height, и источник относительно его родителя. При использовании версии с одним параметром этого метода вызывающая сторона ответственна за создание Rectangle экземпляр, в котором возвращается результат.
Укажите на getLocation ()
Укажите на getLocation (Точка)
Получает текущее расположение компонента относительно левого верхнего угла родителя, измеренного в пикселях. При использовании версии с одним параметром getLocation метод, вызывающая сторона ответственна за создание Point экземпляр, в котором возвращается результат.
Укажите на getLocationOnScreen () Возвращает позицию относительно левого верхнего угла экрана.
Вставки getInsets () Получите размер границы компонента.
Определение Абсолютного Размера и Позиции
(см.
Обхождение без менеджера по Расположению (Абсолютное Расположение) для получения дополнительной информации),
Метод Цель
освободите setLocation (интервал, интервал)
освободите setLocation (Точка)
Установите расположение компонента, в пикселях, относительно левого верхнего угла родителя. Два int параметры определяют x и y в том порядке. Используйте эти методы, чтобы расположить компонент, когда Вы не используете менеджера по расположению.
освободите setSize (интервал, интервал)
освободите setSize (Размерность)
Установите размер компонента, измеренного в пикселях. Два int параметры определяют width и height в том порядке. Используйте эти методы, чтобы измерить компонент, когда Вы не используете менеджера по расположению.
освободите setBounds (интервал, интервал, интервал, интервал)
освободите setBounds (Прямоугольник)
Установите размер и расположение относительно левого верхнего угла родителя, в пикселях, компонента. Четыре int параметры определяют x, y, width, и height, в том порядке. Используйте эти методы, чтобы расположить и измерить компонент, когда Вы не используете менеджера по расположению.

Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Используя Высокоуровневые Контейнеры
Следующая страница: Используя текстовые Компоненты