Java非常新,所以感谢所有帮助,但请尽可能给出更直接的答案。
我正在尝试将System.out.println语句更改为将在JOptionPane中显示的语句。这是我第一次尝试使用GUI,发现自己绝望地失败了。
我通过几种方法打印字符串,以显示一个输出片段。输出的一部分我想放在一个窗格中,所以我认为最简单的方法可能是连接一个字符串。
我有一个坚持Card值的ArrayList。我在卡片中为队列重载了toString方法,并且卡片使用的套装枚举返回字符串(“Heart”,“Spade”等)
for(int x = 0; x < hand.size(); x++){
System.out.println(hand.get(x));
} //correctly prints the code
我试图这样做
String handString =“”;
for(int x = 0; x < hand.size(); x++){
handString = handString.concat(hand.get(x)); //also tried concat(toString(hand.get(x))
}
任何人都可以告诉我为什么我无法更改Card toString以及为什么它会打印到控制台,但为什么我不能把它放到字符串中?我有一种感觉,这是非常明显的,但我在网上找不到任何东西似乎有助于我的枚举和类对象的组合。
另外,我如何将多个打印件转到控制台,再到JOptionPane中的一个打印?
答案 0 :(得分:1)
你可以尝试:
for(int x = 0; x < hand.size(); x++){
handString += hand.get(x);
handString += "\n";
}
加号(+)运算符负责转换为String(对象使用toString()方法 - 已覆盖)。
你也可以在这里使用foreach循环(更短,个人偏好):
for (Card card : hand) {
handString += card;
handString += "\n";
}
答案 1 :(得分:0)
您可能希望在Card-object上显式调用.toString()
:
for(int x = 0; x < hand.size(); x++){
handString = handString.concat(hand.get(x).toString());
}
之后,当然,您还需要更新与handString
相关的任何内容。
清洁版:
for (Card c : hand) {
handString += c;
}