0

私のプログラムはユーザーに尋ねます: 何コースを修了しましたか? そのため、ユーザーは JTextField コンポーネントで完了したコースの数を入力する必要があります。私のプログラムは、JTextField に入力された String を Integer に変換します。プログラムを実行すると、numberformatException が発生します。デバッグを試みたところ、ユーザーが何かを書き込む前に、プログラムが文字列を整数に変換していることに気付きました。プログラムは、ユーザーが何かを入力するのを待ちません。コードの実行を続行する前に、ユーザーが数字を入力するのをプログラムが待機するようにするにはどうすればよいですか?

public class content extends JPanel implements ActionListener
{

     String number = "";
     JTextField NumtextField = new JTextField(5);

     @Override
     public void actionPerformed(ActionEvent e)
     {
         number = NumtextField.getNumtextField().getText();
     }

     int size = Integer.parseInt(number);

}
4

1 に答える 1

1

int size = Integer.parseInt(number);actionPerformed 内に移動:

 public void actionPerformed(ActionEvent e){
 number = NumtextField.getNumtextField().getText();
 int size = Integer.parseInt(number);
 }

プログラムが起動すると""、有効な数値文字列ではない を解析しようとしているため、例外が発生します。また、それを try{}catch{} ブロック内に配置すると、リアルタイムで例外が発生した場合に処理できます。

try {
 int size = Integer.parseInt(number);
}
catch (NumberFormatException e) {
System.out.println("Thats not a valid number");
}
于 2013-04-19T20:43:38.580 に答える