Библиотеки AWT и Swing поддерживает следующие основные элементы управления:
Текстовые метки
Кнопки
Флажки
«Радиопереключатели»
Списки
Поля со списком
Текстовые поля
Текстовые области
Панели прокрутки
Панели с вкладками
Деревья
Таблицы
Все элементы управления реализованы как объекты специальных классов, являющихся подклассами класса Component. Как уже говорилось ранее, каждый компонент (в т.ч. элемент управления) должен быть включен в некоторый контейнер (подкласс класса Container). В библиотеке AWT таким контейнером является само окно. Для добавления элемента управления к окну необходимо использовать одну из форм метода add( ), определенного в классе Container. Самая простая форма выглядит следующим образом:Componentadd(Componentobj)
Здесь obj – экземпляр элемента управления, который добавляется к окну. Метод возвращает ссылку на объект, который передается параметром obj. Сразу после добавления элемент будет выводиться на экран автоматически, когда отображается его «родительское» окно.
Удаление элемента управления из окна производится методом
voidremove (Componentobj).
Вызывая метод removeAll() можно удалить сразу все присоединенные к окну элементы управления.
Управлять положением элемента управления относительно окна, в котором он размещен, можно с помощью методов setBounds( ) и getBounds( ). Форматэтихметодов:voidsetBounds(int x, int y, int width, int height)
voidsetBounds(Rectangle r)
Rectangle getBounds()
В компоненте хранятся координаты его левого верхнего угла в системе координат «родительского» окна. Узнать их можно с помощью метода: PointgetLocation()
а изменить с помощью методов: voidsetLocation(int x, int y) voidsetLocation(Pointp)
Все элементы управления, за исключением текстовых меток, могут взаимодействовать с пользователем, генерируя некоторые события, которые в программе можно идентифицировать и обрабатывать. Модель обработки событий, реализованная в языке Java, будет рассматриваться ниже.
В библиотеке Swing компоненты перед выводом на экран должны быть помещены не в окно, а внутрь специального контейнера, который называется панель содержания (contentpane). Этот контейнер не нужно создавать, его можно получить для окна подобно графическому контексту:JFrame f = new JFrame("Test");Containercp = f.getContentPane();
После этого все операции добавления/удаления компонентов выполняются для панелисодержания, а не для самого окна.