0

私のコード:

name = jTextFieldName.getText();
admin = Integer.parseInt(jTextFieldAdmin.getText());
anal = Integer.parseInt(jTextFieldAnalytical.getText());
creat = Integer.parseInt(jTextFieldCreative.getText());
finish = Integer.parseInt(jTextFieldFinisher.getText());

persons.addPerson(name, admin, anal, creat, finish);

persons.savePersons();

名前が文字列であり、admin、anal、creat、finishが0から30の間のintであることを確認したい。try-catchを使用する必要があると考えているが、正確な使用方法がわからないこのコンテキスト。助けていただければ幸いです。

4

4 に答える 4

2

try catchは、これを処理するための悪い方法ではありません。

try {
    name = jTextFieldName.getText();
    admin = Integer.parseInt(jTextFieldAdmin.getText());
    anal = Integer.parseInt(jTextFieldAnalytical.getText());
    creat = Integer.parseInt(jTextFieldCreative.getText());
    finish = Integer.parseInt(jTextFieldFinisher.getText());

    persons.addPerson(name, admin, anal, creat, finish);

    persons.savePersons();
} catch (NumberFormatException e) {
    // One of the integer fields failed to parse. Do something to alert the user.
}

次に、try部分にいくつかの境界チェックを入れることもできます。例えば

if (admin < 0 || admin > 30) {
    // Problem. Alert the user.
}
于 2013-03-15T09:16:22.627 に答える
2

JSpinner代わりに使ってみませんか。

于 2013-03-15T09:16:44.553 に答える
1

必要なのはif-else、どの統計条件を使用するか、または必要に応じてユーザーに再入力を求めることです。

元 -

if(admin<0 || admin>30){
  // ask user to input again.
}
于 2013-03-15T09:15:17.030 に答える
1

以下のように、に使用InputVerifierしますJTextField

public class MyInputVerifier extends InputVerifier {
    @Override
    public boolean verify(JComponent input) {
        String text = ((JTextField) input).getText();
        // Validate input here, like check int by try to parse it using Integer.parseInt(text), and return true or false
    }
}

// Set input verifier to the text field
jTextField.setInputVerifier(new MyInputVerifier());
于 2014-04-22T08:18:11.760 に答える