Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Бишоп Д. -> "Эффективная робота Java 2" -> 163

Эффективная робота Java 2 - Бишоп Д.

Бишоп Д. Эффективная робота Java 2 — Спб.: Питер, 2002. — 592 c.
ISBN 966-552-107-1
Скачать (прямая ссылка): effektivnayarabotajava2002.djvu
Предыдущая << 1 .. 157 158 159 160 161 162 < 163 > 164 165 166 167 168 169 .. 259 >> Следующая

Panel р — new Panel (J;
TextField паше = new TextField40); p.add (new Label p.add (name);
TextField age = new TextField{N",5); p.add (new Label ("Возраст")); p.add (age);
что даст на выходе:
Имя
Возраст
Потоковый менеджер размещения FlowLayout аккуратно разместит прямоугольники текстовых полей во фрейме заданного размера* Если фрейм окажется больше, метка Возраст может быть помещена в верхний ряд, поэтому для достижения нужного результата может понадобиться дополнительная настройка.
Взаимодействие с текстовыми полями
371
Ввод чисел
Вы, наверное, заметили, что класс TextFxeld имеет только один метод — get, возвращающий объект string. Следовательно, мы вновь сталкиваемся с преобразованием строки в число. Об этом процессе говорилось в разделе 7.2, где для целых чисел использовался следующий ключевой оператор:
, • /V х * >: ¦> А Л -V * <i x-v-.' v * ф ;> / .^xp.v^x'^h-x <*: ?. ' * 1“ ч ... ^ *.*.•. * • %
„.~щттш№щ&ттт№?!№’ •'
. ... v» ^• s ¦¦ ; ^/v •• • • «¦¦V* * < • *vv;'{,vч- •'V хл-* *•¦'•• ь* ?tw v* -
.... ¦¦ '¦ ¦ ¦ -------------------------------------------------------------------------------------------------————..¦«¦••.*•• •¦• »-«--1 і - - г 11 ґ“Аі^ -v-' "‘--' -
і = Integer.parselnt(s)
Транслирует строку " s" в целое число 11 і”. Если строка имеет некорректную форму, система выдает сообщение об исключительной ситуации ParseException.
Точно такая же технология может быть использована в программировании GUI-Однако простой оператор, наподобие описанного, предполагает, что при преобразовании все будет происходить надлежащим образом, т.е, не встретится такой случай, как, скажем, не числовой символ в строке. Этими проблемами занимается класс Stream, и можно предположить, что должен быть напиеан аналогичный класс (например, GUiText), который будет выполнять те же функции, но работать с данными, вводимыми из класса TextField* а не класса BufferedReader.
Компоненты, позволяющие работать без ввода данных
В конце раздела 10.3 мы упоминали о том, что в awt есть несколько компонентов, предоставляющих возможность выбирать нужную кнопку выбора или нужное значение из раскрывающихся списков. Этим экономится время пользователя, а также устраняется возможность некорректного ввода. Так, при необходимости указать день недели пользователю вовсе не обязательно вводить информацию в текстовое поле — достаточно щелкнуть мышью на нужной строке в списке choice. Компоненты CheckBox, List, Menu и Popup используются аналогичным образом* Пример использования объекта Choice приведен в усовершенствованной версии программы “Светофор” (Пример 11.1).
.іл ,> > • vr* * l: u;:, ^; * *
V .. Фч'. vV,?.X---v*xr*:
Светофор с кнопками
Задача. Программа “Светофор”, которая создавалась как симулятор, предназначена для исследования возможности изменения длительности горения каждого света светофора. Например, должен ли красный свет гореть дольше, чем зеленый.
Решение. Чтобы программа-симулятор была проста в использовании, нам нужна возможность изменять время, в течение которого данный свет горит. Другими словами, мы должны вводить новые значения. Для этого требуется:
¦ выбор одного из четырех цветов;
¦ ввод новвьтх значений длительности.
Необходимые компоненты могут быть добавлены к панели кнопок и помещены в нижней части экрана. Это будет раскрывающийся список, в котором представлены четыре цвета, а также текстовое поле для ввода значений длительности (в секундах).
372
Глава 11. Управление событиями
Программа. У нас еще недостаточна знаний, чтобы составить программу, в которой свет будет загораться — это будет рассматрено в главе 13. Однако мы можем реагировать на выбор света и установление длительности его горения, отправляя программе для обработки сообщение, в котором указан выбранный свет и новая длительность. Вот как выглядит конструктор для фрейма, содержащего “ светофор,э:
Traffic! () {
setTitle (’’Светофор Версия 1"); panel title - new Panel();
title.add(new Label("Симулятор светофора")); add("North", title);
lights = new LightsCanvas () add{"Center", lights);
Panel buttons e= new Panel (); colours = new Choice 0? colours.addltemf"Красный"); colourз.addltem("Желтый"); colours.addltem("Зеленый"); colours.addltem("Идите")т buttons .add(colours);
duration - new TextFieldin", 3);
buttons-add(new Label("Длительность")); duration.setEditable(true); buttons.add(duration);
walkButton = new Button("Идите"); buttons,addCwalkButton);
closeButton - new Button("Закрыть"); closeButton . addAotionLisitener (this) ; buttons.add(closeButton) ; add ("South*1, buttons) ;
private TextField duration; private Choice colours; private Button walkButton; private Burton closeButton?
Предыдущая << 1 .. 157 158 159 160 161 162 < 163 > 164 165 166 167 168 169 .. 259 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.