| ■ ダイアログボックスを利用した文字入力 |
Javaには、GUI作成用のためのクラスにSwingパッケージというのがあります。 このパッケージを利用してデータを入力するプログラムを次に示します。 このプログラムは、名前と年齢を入力し、入力された値をそのまま出力するプログラムです。
// 文字と数値を入力し、それを表示するプログラム例
import javax.swing.*;
public class InputDialog{
public static void main(String[] arges){
String name=JOptionPane.showInputDialog("名前を入力して下さい");
String age=JOptionPane.showInputDialog("年齢を入力して下さい");
System.out.println("名前:"+ name);
System.out.println("年齢:"+ age);
System.exit(0);
}
}
このプログラムで新しく使われている命令は、以下の4行です。 このうち、2と3は同じ命令です。
[egi@taro]$ java InputDialog 名前:江木鶴子 年齢:45 [egi@taro]$
|
| ■ 入力した数値を計算に使う |
数値を入力して、その値を何らかの計算に使いたい場合は、文字列の数値を数値型に変換する必要があります。 次のプログラムは、身長を入力し、標準体重を計算して出力するプログラムです。
// 数値を入力し、計算結果を表示する。
import javax.swing.*;
public class InputDialog1{
public static void main(String[] arges){
String sincho=JOptionPane.showInputDialog("身長を入力して下さい");
System.out.println("身長: "+ sincho);
int y=Integer.parseInt(sincho); <--- sinchoを Stringからintへ変換
System.out.println("標準体重:" + ((y-100)*0.9));
System.exit(0);
}
}
このプログラムで使われている、Integer.parseIntは、IntergerクラスのparseIntメソッドが、( )内に記述されたString型のデータをint型のデータに変換してくれます。
上記のプログラムを実行すると、「身長を入力して下さい」という入力ウインドウが現れ、そこに身長を156と入力すると、次のように結果を出力してプログラムが終了します。
|
| ■ 入力した値が数値でない場合の処理 |
上記プログラムの中で、入力した値を、数値の値に変換するために Integer.parseInt(sincho)という命令が実行されています。しかし、この命令を実行する際に、sinchoの中に、数値でないものが入力されていたとすると、javaはそれを数値に変換することができません。 そこで、
try{
:
int sinchox=Integer.parseInt(sincho);
:
}
catch(NumberFormatException ){
System.out.println("入力の値が数値ではありません。");
}
という命令を使用して、数値でないような値がsinchoに入っていた場合は、エラーを出力するようにします。
次のプログラムは、前と同じ身長を入力し、標準体重を計算して出力するプログラムですが、入力の値が数値でない場合は、「入力の値が数値ではありません。」と表示して、標準体重の計算をしないプログラムです。
// 数値を入力し、計算結果を表示する。
import javax.swing.*;
public class InputDialog1{
public static void main(String[] arges){
try{
String sincho=JOptionPane.showInputDialog("身長を入力して下さい");
System.out.println("身長: "+ sincho);
int y=Integer.parseInt(sincho); <--- 誤りがあれば、この命令を実行する時に発覚する
System.out.println("標準体重:" + ((y-100)*0.9));
System.exit(0);
}
catch(NumberFormatException ){
System.out.println("入力の値が数値ではありません。");
}
}
}
[egi@taro]$ java InputDialog1 身長: 15p 入力の値が数値ではありません。 [egi@taro]$ |
|
|