我创建的表不会与其余代码一起执行

时间:2020-10-06 15:09:31

标签: java

public class BodyMassIndex extends JFrame {
    Scanner in = new Scanner (System.in);
    
    String user_name;
    String user_height;
    String user_weight;
    Double user_BMI;
    String User_Catagory;
    
JTable jt;
    
    String[] column_headers = {"Name","Height (m)","Weight (Kg)", "BMI", "Catagory"};
    String[][] user_statistics = {{user_name, user_height, user_weight , String.valueOf(user_BMI) , User_Catagory}};
    
    public BodyMassIndex() {
        System.out.print("Enter Your Full Name: ");
        user_name = in.nextLine();
        System.out.print("Enter Your Weight in Pounds: ");
        user_weight = in.nextLine();
        System.out.print("Enter Your Height in Inches: ");
        user_height = in.nextLine();
        
        
        Double Height_M = (Integer.parseInt(user_height) * 0.0254);
        Double Weight_KG = (Integer.parseInt(user_weight) * 0.453);
        user_BMI = (Integer.parseInt(user_height)/(Math.pow(Integer.parseInt(user_weight) , 2)));
        
        if (user_BMI < 18.5) {
            User_Catagory = "Underweight";
            
        }
        
        else if (user_BMI <= 24.9 && user_BMI >= 18.5) {
            User_Catagory = "Normal or Healthy Weight";
            
        }
        
        else if (user_BMI <= 29.9 && user_BMI >= 25.0) {
            User_Catagory = "Overweight";
            
        }
        
        else {
            User_Catagory = "Obese";
            
        }
        
        jt = new JTable(user_statistics, column_headers);
        jt.setBounds(50,50,200,230);
        JScrollPane js = new JScrollPane(jt);
        this.add(js);
        this.setSize(300,400);
        this.setVisible(true);
        
        
        
    }
    
    public static void main(String[] args) {
        
        new BodyMassIndex();
        
    }
}

我导入了所需的所有内容并键入了上面的代码,但是在运行时,程序仅询问三个问题,然后它停止了。应该显示一个表。不是。我该如何运作?我是否不能将JTable与Scanner一起使用?我需要从用户那里获取信息,然后将其显示在表格中。

1 个答案:

答案 0 :(得分:2)

我已复制粘贴您的代码。 它为我显示了一个空表。 原因是您的 user_statistics 字段。

您使用其他字段(用户名,用户高度等)为其分配了值。

请注意,提到的字段当时没有任何值,因此当您在JTable构造函数中使用user_statistics时,该字段为空。 从用户那里获得数据后,应该为其分配这些值。

简单地说,您可以在调用JTable构造函数之前复制此行:

String[][] user_statistics = {{user_name, user_height, user_weight , String.valueOf(user_BMI) , User_Catagory}};
jt = new JTable(user_statistics, column_headers);

完成此操作后,它会为我很好地显示数据。

enter image description here

相关问题