Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 конспект лекций ООП Java.doc
Скачиваний:
28
Добавлен:
03.05.2015
Размер:
962.05 Кб
Скачать

Элементы управления

Элементы управления из пакета AWTявляются наследниками классаComponent. При использовании пакетаSwingкомпоненты наследуются от классаJComponent, производного от классаContainer.

Текстовые метки Label,JLabelсоздаются с помощью конструкторовLabel(),Label(String str),Label(String str,int alignment).

Списки – List иJList.

Полосы прокрутки – ScrollBarиJScrollBar.

Однострочная область ввода – TextFieldиJTextField.

Многострочная область ввода – TextAreaиJTextArea.

Кнопки – ButtonиJButton.

Кнопки – CheckBox и JCheckBox, RadioButton и JRadioButton.

От AbstractButtonнаследуются два основных кнопочных класса:JButtonиJToggleButton. Первый служит для создания обычных кнопок с разнообразными возможностями, а второйдля создания радиокнопок (классJRadioButton) и отмечаемых кнопок (классJCheckBox). Помимо названных отAbstractButtonнаследуется пара классовJCheckBoxMenuItemиJRadioButtonMenuItem, используемых для организации тех меню, пункты которых должны быть оснащены отмечаемыми радиокнопками.

Процесс создания кнопок достаточно прост: вызывается конструктор JButtonс меткой, которую нужно поместить на кнопке. КлассJButtonбиблиотеки Swing для создания обычных кнопок предлагает несколько различных конструкторов: JButton(), JButton(String s), JButton(Icon i), JButton(String s, Icon i).

Если используется конструктор без параметров, то получится абсолютно пустая кнопка. Задав текстовую строку, получим кнопку с надписью. Для создания кнопки с рисунком конструктору передается ссылка на класс пиктограммы. Класс JButtonсодержит несколько десятков методов.JButtonэто компонент, который автоматически перерисовывается как часть обновления. Это означает, что не нужно явно вызывать перерисовку кнопки, как и любого управляющего элемента; он просто помещается на форму и сам автоматически заботится о своей перерисовке. Чтобы поместить кнопку на форму, необходимо выполнить это в методеinit(). Каждый раз, когда кнопка нажимается, генерируется action-событие. Оно посылается блокам прослушивания, зарегистрированным для приема события от этого компонента.

// пример # 7 : кнопка и ее методы : MyButtons.java

importjava.awt.*;

importjavax.swing.*;

importjava.awt.event.*;

public class MyButtons extends JApplet

         implements ActionListener {

    String msg;

    JButton yes, maybe;

    JLabel lbl;

    JTextField txt;

    public void init() {

         yes = new JButton("yes");

yes.setActionCommand("yes"); //определение команды

         maybe = new JButton("may be");

                  lbl = new JLabel("");

         txt = new JTextField(10);

    Container c = getContentPane();

         c.setLayout(new FlowLayout());

         c.add(yes);

         c.add(maybe);

         c.add(lbl);

         c.add(txt);

    yes.addActionListener(this);

    maybe.addActionListener(this);

    }

    public void actionPerformed(ActionEvent e) {

         String str =

             ((JButton) e.getSource()).getText();

         if (str.equals("yes"))

             msg = "Button <yes> is pressed”;

         else

             msg = " Button <may be> is pressed ";

         lbl.setText(msg);

             String name =

    e.getActionCommand(); // извлечение команды

         txt.setText(name);

    }

}

Рис. 13.7. Апплет с кнопками, меткой и текстовым полем

Метод getSource()возвращает ссылку на объект, явившийся источником события, который преобразуется в объектJButton. Метод getText() в виде строки извлекает текст, который изображен на кнопке, и помещает его с помощью методаsetText()объектаJLabel в объектlbl. При этом определяется, какая из кнопок была нажата.

Команда, ассоциированная с кнопкой, возвращается вызовом метода getActionCommand() класса ActionEvent, экземпляр которого содержит всю информацию о событии. Для отображения результата нажатия кнопки использован компонент JTextField, представляющий собой поле, где можетбыть размещен и изменен текст. Хотя есть несколько способов создания JTextField, самым простым является сообщение конструктору нужной ширины текстового поля. Как только JTextField помещается на форму, можно изменять содержимое, используя метод s

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]