-4
JTextField ageTxt;
ageTxt = new JTextField("30");
int age = ageTxt.getText( );

if (age < 30)
    System.out.println("You are young");
else
    System.out.println("You are NOT young");
4

6 に答える 6

5

ageTxt.getText()を返しますjava.lang.String。それを機能しないプリミティブに割り当てようとしてintいます。

Integer.parseInt()を に変換するためにString使用できますint。ただしNumberFormatException、文字列が有効な数値でない場合、これがスローされる可能性があることに注意してください。したがって、try-catchブロックでラップすることをお勧めします。

于 2012-08-15T10:07:36.897 に答える
1

it を整数にキャストしていないため、 getText() が文字列を返すため、例外が発生するため、これが役立つことを願っています。まずこのようにintに変換してから使います。

JTextField ageTxt;
ageTxt = new JTextField("30");
int age = Integer.parseInt(ageTxt.getText( ));

if (age < 30){
    System.out.println("You are young");
}
else{
    System.out.println("You are NOT young");
}
于 2012-08-15T10:14:47.657 に答える
1
JTextField ageTxt;
ageTxt = new JTextField("30");
String age = ageTxt.getText( );

if (Integer.parseInt(age) < 30)
    System.out.println("You are young");
else
    System.out.println("You are NOT young");
于 2012-08-15T10:08:53.457 に答える
1

あなたの質問はうまく定式化されていませんが、私が見ることができることから、String を返すメソッドで int 値を初期化しようとしています。

int age = ageTxt.getText( );

代わりに、次のことを行う必要があります。

String ageS = ageTxt.getText();
int age = Integer.parseInt(ageS);
if (age < 30) {
  // do something
}

そしてもちろん、parseInt が例外をスローしないことを確認してください。

于 2012-08-15T10:09:56.170 に答える
0

jtextfield の代わりにスキャナーを使用できます。ここに私が作ったコードがあります:

import java.util.Scanner;

public class Test {
public static void main(String[]args){
int age;
Scanner getage = new Scanner(System.in);
System.out.println("How old are you");
age = getage.nextInt();
if (age < 30){
System.out.println("You are young");
}
else{
System.out.println("You are NOT young");
}


}
}
于 2014-03-04T02:34:09.510 に答える
0

ageTxt.getText()ユーザーが入力した文字を含むオブジェクトを返し、整数のみを含むことができる var にStringそれを入れようとします。intだからうまくいかない。それを String オブジェクトに入れてから、 を実行して解析して整数値を取得しますInteger.parseInt(myStringObject)。String オブジェクトに整数が含まれていない場合、例外がスローされる可能性があることに注意してください。

于 2012-08-15T10:09:34.690 に答える