Вы уже видели, как легко можно вывести информацю на "стандартное
устройство вывода" (т.е. консольное окно), вызвав метод System, out.
println. К сожалению, считать информацию со "стандартного устройства ввода" (т.е. клавиатуры) немного сложнее. Однако создать диалоговое окно для ввода данных с клавиатуры достаточно легко. Вызов метода JOptionPane.showInputDialog(promptString) выводит на экран диалоговое окно, в котором пользователь может набрать свои данные (рис. 3.6). Этот метод возвращает строку, набранную пользователем в этом окне.
Рис 3-6. Окно ввода
Например, здесь показано, как запросить имя пользователя вашей программы. String name = JOptionPane.showInputDialog ("What is your name?");
Чтобы считать число, нужно выполнить более сложную работу. Метод JOptionPane. showInputDialog возвращает строку, а не число. Для преобразования этой строки в число нужно использовать метод Integer.parseInt или Double.parseDouble,например: String input = JOptionPane.showInputDialog ("How old are you?") ; int age = Integer.parselnt(input);
Если пользователь наберет на клавиатуре число 40, то строковой
переменной input будет присвоена строка "40". Метод Integer .parselnt
преобразовывает строку в соответствующее число, т.е. 40.
Если параметр метода parselnt содержит символы, не являющиеся
цифрами, метод возбуждает исключительную ситуацию. Если ваша программа
не "перехватывает" эту исключительную ситуацию, виртуальная машина
прекращает ее выполнение и выводит на консоль сообщение об ошибке. В
главе 11 мы покажем, как перехватывать исключительные ситуации.
Программа, показанная в листинге 3.2, запрашивает имя пользователя и
его возраст, а затем выводит сообщение, например, такое: Hello, Cay.
Next year, you'll be 41.
При выполнении этой программы сначала на экране возникнет диалоговое
окно, в котором нужно ввести ваше имя. Затем это окно исчезнет, и во
вновь появившемся втором диалоговом окне нужно будет ввести ваш
возраст. Результат работы программы будет выведен в консольное, а не
диалоговое окно. Разумеется, это не очень элегантно.
В следующих главах мы покажем, как создать более привлекательные
пользовательские интерфейсы. Пока остановимся на методах JOptionPane .
showslnputDialog и System. out. println, поскольку их легче всего
использовать.
Заметим, что программа завершает свою работу вызовом метода System.ekit(0) ;
Каждый раз, когда программа вызывает метод JOptionPane.
showslnputDialog, ее работу необходимо завершать вызовом метода System.
exit (0). В основном это вызвано техническими причинами.
Вывод на экран диалогового окна запускает новый поток управления.
При завершении работы метода main этот новый поток управления не
прекращает свою работу автоматически. Чтобы закрыть все потоки, нужно
вызвать метод System. exit. (Более подробную информацию о потоках можно
найти в главе 1 тома 2.)
Метод System.exit получает целочисленный параметр, представляющий
собой "код выхода" из программы. По умолчанию, если работа программы
завершилась нормально, ее код выхода равен 0, в противном случае этот
код не равен нулю. Для индикации разных ошибочных ситуаций можно
использовать разные коды выхода. Завершенная программа передает свой
код выхода операционной системе. Затем сценарии и bat-файлы могут
проверять этот код. В заключение обратите внимание на строку Import javax. swing *; расположенную в начале программы.
Класс JOptionPane определен в пакете javax. swing. Используя класс, не
определенный в основном пакете java. lang нужно применять директиву
import. Пакеты и директива import рассматриваются в главе 5.
Листинг 3.2. Программа InputTest.java.
|