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一起使用?我需要从用户那里获取信息,然后将其显示在表格中。
答案 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);
完成此操作后,它会为我很好地显示数据。