如何在JOptionPane中打印一组for循环数组?
这是我的原始代码,用于打印输入到程序中的信息,它被设计用来创建一个可以在左边显示导师名字的好小桌子,右边是他们的薪水,底部的所有薪水总额为:如何在JOptionPane中打印一组for循环数组?
System.out.println("Tutor Stipend Report");
System.out.println("Tutors\t\tPay");
System.out.println("------\t\t---");
for(int out=0;out<numOfTutors;out++) {
System.out.println(names[out]+"\t\t"+stipend[out]);
}
System.out.println("--------");
System.out.println("Total: " +sum);
现在我需要把这个代码显示在JOptionPane
这里是我卡住的地方。我想保持与之前相同的表格设置,但每次我要显示信息时,可以说我需要显示3位导师,它只会提供3 JOptionPane
对话框,而不是在一个对话框中打印3位导师。
我意识到这个问题是因为所有的信息都在for循环中,但是我该如何解决这个问题,这样我才能显示指定数量的导师并在一个对话框上付费,就像我在System.out.println
解决方案中一样?
for (int out=0;out<numOfTutors;out++) {
JOptionPane.showMessageDialog(null,
"Tutor Stipend Report" +
"\nTutors Pay" +
"\n--------- -----" +
"\n"+names[out]+" "+stipend[out] +
"\n--------" +
"\nTotal: " +sum);
}
您需要将呼叫转移到JOptionPane.showMessageDialog
外for
-loop的。
结账StringBuilder
。它是这样的事情有所帮助:
StringBuilder sb = new StringBuilder();
sb.append("There are ").append(count).append(" people in the following list:\n");
for (int i = 0; i < count; i++) {
sb.append("Person #").append(count).append('\n');
}
JOptionPane.showMessageDialog(null, sb.toString());
的问题是,因为你调用JOptionPane.showMessageDialog
内循环,将执行3次。你应该做的,而不是为串联要打印成一个字符串对象像这样的字符串:
String toBeDisplayed = "";
for(int out=0;out<numOfTutors;out++) {
toBeDisplayed += /*.. add your string here.. */;
}
JOptionPane.showMessageDialog(null, toBeDisplayed);
注意,使用cocatenating字符串+ =不是做最有效的事情 - 考虑使用StringBuilder的/ StringBuffer的
感谢您的回复,我最终用StringBuilder从前一位用户告诉我的内容开始,再次感谢您。 – 2013-04-09 23:49:28
+1解决方案很好,就像旁注一样,您还可以将文本包装在''标签中,并使用HTML格式(例如'
此解决方案非常完美,谢谢你这么多,我从来没有听说过StringBuilder,但它是一个很好的解决方案。 – 2013-04-09 23:48:18
的问题是,因为你调用
JOptionPane.showMessageDialog
内循环,将执行3次。你应该做的,而不是为串联要打印成一个字符串对象像这样的字符串:注意,使用cocatenating字符串+ =不是做最有效的事情 - 考虑使用StringBuilder的/ StringBuffer的
感谢您的回复,我最终用StringBuilder从前一位用户告诉我的内容开始,再次感谢您。 – 2013-04-09 23:49:28
相关问题