2

さて、私はユーザーが何も入力せずに「OK」をクリックしたかどうかを検出する方法を作成しようとしています。

たとえば、ユーザーが[キャンセル]をクリックすると、次のコードでwhileループから抜け出します。

if (words[i] == null) break; //breaks out of while loop

[OK]をクリックするユーザーのために、これらの線に沿って何かを試しました。

else if (Character.isDigit(words[i].charAt(0)) && words[i].charAt(0) == JOptionPane.OK_OPTION) break;

ユーザーが[OK]をクリックしたが、サイコロがない場合は、ループから抜け出します。この例外が発生します:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(Unknown Source)
at Project1.main(Project1.java:21)

OK_OPTIONはint型であるため、intに変換しました。誰かが私がこれをどのように行うことができるかについて何か考えを持っていますか?

この投稿は「キャンセル」ボタンについては見つかりましたが、「OK」ボタンについては何も見つかりませんでした。ありがとう!

4

1 に答える 1

1

ユーザーが入力を入力せずに[OK]をクリックしても、プログラムは文字列を単語配列に格納したままで、文字列はたまたま空白になっています。文字列が空白かどうかを確認する簡単な方法は、文字列の長さを確認することです。したがって、必要なコードは次のようになります。

// break if user enters blank input
if( words[i].length() == 0 ) break;
于 2010-10-04T22:10:01.090 に答える