-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()将 a 转换Stringint. 但请注意,NumberFormatException当字符串不是有效数字时,这可能会抛出 a 。所以你可能想把它包装在一个try-catch块中。

于 2012-08-15T10:07:36.897 回答
1

希望这会对您有所帮助,因为您没有将它转换为整数,所以 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

您的问题表述得不是很好,但据我所知,您正在尝试使用返回 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 回答
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 回答
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()返回一个String包含用户键入的字符的对象,然后您尝试将其放入intvar 中,该 var 只能包含整数。所以它不能工作。只需将它放在一个 String 对象中,然后通过执行解析它以获取整数值Integer.parseInt(myStringObject)。请注意,如果 String 对象不包含整数,这可能会引发异常。

于 2012-08-15T10:09:34.690 回答