logo
Хабибуллин

Компонент JComponent

Основные свойства всех компонентов Swing сосредоточены в их суперклассе JComponent. Класс JComponent расширяет класс Container, входящий в графическую библиотеку AWT. Поэтому компонент JComponent и все его расширения являются контейнерами и могут содержать в себе другие компоненты. Класс Container, в свою очередь, расширяет класс Component, содержащий около сотни методов работы с компонентами. Эти методы и методы класса Container наследуются классом JComponent, который добавляет к ним добрую сотню своих методов. Все компоненты Swing расширяют класс JComponent, наследуя его богатейшие свойства.

Класс JComponent — это абстрактный класс, поэтому нельзя создать его экземпляры. Кроме того, он реализован как "легкий" компонент и, несмотря на то что является контейнером, не может служить контейнером верхнего уровня. По этим причинам он не используется самостоятельно, а только как суперкласс для создания новых компонентов, перенося на них всю свою мощь.

В классе JComponent сосредоточена основная функциональность компонентов Swing. Перечислим некоторые возможности компонентов.

Для компонента JComponent и его наследников можно задать рамку методом

setBorder(Border).

Компонент можно сделать прозрачным или непрозрачным с помощью метода

setOpaque(boolean).

Фон непрозрачного компонента можно закрасить определенным цветом методом

setBackground(Color).

Для любого компонента можно установить шрифт методом setFont(Font) и его цвет

методом setForeground(Color).

Для каждого компонента создается графический контекст класса Graphics, которым можно воспользоваться для рисования фигур и линий на компоненте, обратившись

к методу paint(Graphics).