2

私のプログラムでは、ユーザー入力を読み取る JTextField があります。ユーザーは数字を入力してから JButton をクリックしてエントリを確認することになっていますが、ユーザーが数字を入力しないと、ポップアップが表示され、ユーザーにそれが間違った入力であることを知らせるキャッチが必要です。JButton がクリックされたときにユーザーが数字を入力したかどうかを検出するために何かを実装するにはどうすればよいでしょうか? さらにコードを提供する必要がある場合は、お知らせください。

JButton okay = new JButton("OK");
JTextField dataEntry = new JTextfield();

okay.addActionListener(new ActionListener(){
    public void actionPerformed(ActionEvent e){       
        firstEntry = Float.parseFloat(dataEntry.getText());
        //want to see if it's a float, if true, run the following code
        confirm = true;
        changeText();
        dataEntry.setText("");
    }
});
4

2 に答える 2

0

これはJavaでの非常にコストのかかる手順であるため、例外のキャッチメカニズムを使用して値が数値であるかどうかを確認することは避けます。

FormattedTextFieldsを使用するとよいでしょう:formattedtextfield

これにはいくつかのコードが必要ですが、非常に洗練されたソリューションです。このコンセプトで独自のフォーマットを書くこともできます。

于 2012-09-29T23:35:16.410 に答える
0

parseFloatNumberFormatException渡さStringれた に parseable が含まれていない場合、 a をスローしfloatます。この例外をキャッチして、ユーザーが次のように入力したかどうかを検出できますfloat

try {
  firstEntry = Float.parseFloat(dataEntry.getText());
} catch (NumberFormatException e) {
  // input is not a float
}

別のオプションは、Scanner例外を処理したくない場合にa を使用することです。

Scanner scanner = new Scanner(dataEntry.getText());
if (scanner.hasNextFloat()) {
  firstEntry = scanner.nextFloat();
} else {
  // input is not a float
}
于 2012-09-29T23:19:25.167 に答える