【问题标题】:Beginner java What is the error and why?初学者java 什么是错误,为什么?
【发布时间】:2012-08-15 10:04:28
【问题描述】:
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");

【问题讨论】:

  • 代码没有编译,所以你的编译器会给你一个错误信息,这应该是不言自明的,包括一个指向发生错误的行的行号(类似于:can'例如,将 String 分配给 int)。
  • 您希望我们猜测错误吗?
  • 如果您不理解编译器的错误信息,请在此处发布编译错误信息。
  • 请正确描述您的问题。

标签: java swing


【解决方案1】:

ageTxt.getText() 返回一个java.lang.String。您正在尝试将其分配给原始 int 这将不起作用。

您可以使用Integer.parseInt()String 转换为int。但请注意,当字符串不是有效数字时,这可能会引发NumberFormatException。因此,您可能希望将其包装在 try-catch 块中。

【讨论】:

    【解决方案2】:
    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");
    

    【讨论】:

      【解决方案3】:

      您的问题表述得不太好,但据我所知,您正在尝试使用返回 String 的方法初始化 int 值。

      int age = ageTxt.getText( );
      

      相反,您应该这样做:

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

      当然还要确保 parseInt 不会抛出异常。

      【讨论】:

        【解决方案4】:

        希望这会对你有所帮助,因为你没有将它转换为整数,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");
        }
        

        【讨论】:

          【解决方案5】:

          ageTxt.getText() 返回一个包含用户键入的字符的String 对象,您尝试将其放入一个只能包含整数的int var 中。所以它不能工作。只需将它放在一个 String 对象中,然后通过执行Integer.parseInt(myStringObject) 对其进行解析以获取整数值。请注意,如果 String 对象不包含整数,这可能会引发异常。

          【讨论】:

            【解决方案6】:

            您可以使用扫描仪代替 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");
            }
            
            
            }
            }
            

            【讨论】:

              猜你喜欢
              • 2019-06-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-08-18
              • 1970-01-01
              相关资源
              最近更新 更多