我的ArrayList每次循环时都会添加String
,但它会显示在一个大行上。如何在JOptionPane循环中的每一行String
出现时将其显示在哪里?
这是我的报告方法:
public String report()
{
return(name + "\t" + height + " inches\t" + weight + " pounds\tBMI: "
+ df.format(bmiValue()) + "\t" + bmiStatus() );
}
以下是ArrayList的代码:
ArrayList a = new ArrayList();
if(JFileChooser.APPROVE_OPTION)
{
File f = choose.getSelectedFile();
Scanner s = new Scanner(new FileInputStream(f));
int l = scanner.nextInt();
for(int i = 0; i < l; i++)
{
int height = s.nextInt();
int weight = s.nextInt();
String name = s.nextLine();
BmiRecord r = new BmiRecord(name, height, weight);
a.add(r.report());
}
confirm = JOptionPane.showConfirmDialog(null, a, "BMI Calc",
JOptionPane.YES_NO_OPTION);
答案 0 :(得分:1)
您的report()函数应为:
public String report()
{
return(name + "\t" + height + " inches\t" + weight + " pounds\tBMI: "
+ df.format(bmiValue()) + "\t" + bmiStatus() + "\n");
}
注意我添加了\n
,它在report()函数返回的字符串末尾添加了一个新行。
同样ArrayList a = new ArrayList();
应更改为ArrayList<String> a = new ArrayList<String>();
使用ArrayList的String参数可确保类型安全,因为ArrayList只能保存String对象,而ArrayList是一个可以保存任何对象的原始类型,是不安全的。