我有一个JLabel PlayerLabel数组和PlayerName数组,它通过以下方式初始化
String [] PlayerName;
PlayerName = new String[4];
for (int i=0;i<4;i++)
{
PlayerName[i] = "None1";
}
JLabel [] PlayerLabel;
PlayerLabel = new JLabel[4];
for (int i=0;i<4;i++)
{
String num = Integer.toString(i);
String output = "Player " + num + " : " + PlayerName;
PlayerLabel[i] = new JLabel(output);
PlayerLabel[i].setForeground(Color.white);
}
我希望我的JLabel文本是
玩家1:无1
相反,我越来越
播放器1:java.lang.String; @ 4e9fd887
每次重新启动程序时,
@15150ef8
部分都会更改为数字和字母的不同组合。当我初始化PlayerName时还可以
我不知道为什么在输出中添加PlayerName时会变得怪异
发生了什么事,我该如何解决这个问题?
最佳答案
当您执行+ Playername
时,您将打印数组本身,而不是数组中的元素。当您尝试将对象连接为字符串时,将调用对象的toString()
方法,并且数组从toString()
继承其Object
:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
那可能不是您想要的。
您可能想做
Playername[i]
。