Изучаем Java

Вы здесь: Главная >> Java-учебник >> Считывание ввода

Считывание ввода в языке Java



Сразу сделайте закладку в вашем браузере на каталог docs/api/index.html.

Вы уже видели, как легко можно вывести информацю на "стандартное устройство вы­вода" (т.е. консольное окно), вызвав метод 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.


Партнеры сайта