Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
занятие14.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
258.05 Кб
Скачать

На заметку:

И для кнопки, и для поля, метод, который возвращает текст компонента (название кнопки и содержание поля соответственно), называется getText ().

После запоминания текста окно закрывается (убирается с экрана командой frame.setvisible(false)), а командой IntInputFrame.show ("Сколько Вам лет? Укажите возраст (лет):",name) отображается новое окно для ввода числового значения (возраста пользователя). В последнем случае использован статический метод show() класса IntInputFrame, который описывается несколько позже.

Все эти действия выполняются, если нажата кнопка подтверждения (кнопка btYes). Если нажата кнопка завершения работы программы (кнопка btNo), то выполняется команда System.exit(0), которой завершается работа программы.

У класса TextInputFrame есть статический метод show(), предназначенный для отображения окна ввода текста. Аргументом методу передается в качестве аргумента текстовое значение, которое служит значением текстовой метки в создаваемом окне. В частности, в методе создается с передачей аргумента метода аргументу конструктора анонимный объект класса TextInputFrame().

Класс IntInputFrame очень похож на класс TextInputFrame, но некоторые отличия все же есть. На них сосредоточим свое внимание.

В первую очередь стоит заметить, что класс IntlnputFrame реализует не толькр интерфейс ActionListener, но еще и интерфейс KeyListener. В качестве закрытых полей класс содержит ссылку frame на объект класса JFrame (окно для ввода числа), ссылку enter на объект класса JLabel (метка с текстом над полем ввода числа), ссылки btYes и btNo на объекты класса JButton (соответственно, кнопка подтверждения и кнопка завершения работы), ссылка tf на объект класса JTextField(текстовое поле ввода). Есть еще два поля: текстовое поле name и целочисленное поле age. В поле name запоминается имя пользователя, а в поле age запоминается его возраст.

На заметку:

Общая схема такая. Сначала создается объект класса TextlnputFrame с окном для ввода имени пользователя. Это имя записывается в поле name объекта. Затем первое окно убирается с экрана и создается объект класса IntlnputFrame с окном для ввода возраста. Значение поля name из объ­екта класса TextlnputFrame переписывается в одноименное поле класса IntlnputFrame. Поле age класса IntlnputFrame заполняется на осно­ве значения, введенного в поле ввода второго окна. Значения полей name и age передаются в объект класса MessageFrame, который создается для отображения третьего, последнего окна с сообщением с именем и возрастом пользователя.

Конструктору класса IntlnputFrame в качестве аргументов передаются два текстовых аргумента. Первый аргумент определяет надпись над полем ввода. Второй аргумент (его копия) записывается в поле name. Этот второй аргумент предназначен для запоминания текстового значения с именем пользователя, которое передается объекту класса IntlnputFrame при создании. Помимо уже знакомых нам по коду предыдущего класса команд, стоит обратить внимание на инструкцию tf.addKeyListener (this), которой в текстовом поле регистрируется обработчик для события, связан­ного с нажатием клавиши на клавиатуре.

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