尝试在JOptionPane对话框中打印出一些星星。 现在我有一个void函数在我的Star类中执行明星工作:
public void setStars(){
for (int j = 0; j < column; j++){
if (j % 2 == 0)
System.out.print("\n");
else
System.out.print("\n ");
for(int i = 0; i < row; i++)
System.out.print("* ");
}
}
它做了它应该做的事情,但我似乎无法弄清楚如何在我已经创建的对话框中实现它,如下所示:
String message = String.format("Knight Name: %s%n"
+ "Knight Health: %d%n"
+ "Knight Battles: %d%n"
+ "Knight Age: %d%n"
+ "Knight Gold: $%d%n",k1.getName(), k1.getHealth(),k1.getNumberBattles(),k1.getAge(),k1.getAmountGold());
JOptionPane.showMessageDialog(null, message);
任何可能的移动方法都在for循环中生成那些输出语句并让它们作为类字符串返回?
答案 0 :(得分:2)
您需要做的就是返回一个String而不是使用void-method,而您以前用于打印的地方只需将它附加到StringBuilder。 PS:使用StringBuilder而不是String + = ...因为后者真的非常慢......
public String setStars(){
StringBuilder sb = new StringBuilder();
for (int j = 0; j < column; j++){
if (j % 2 == 0)
sb.append("\n");
else
sb.append("\n ");
for(int i = 0; i < row; i++)
sb.append("* ");
}
return sb.toString();
}