我浏览了各个论坛和站点,试图找出我要去哪里,但没有运气。

public void updatePlayerLabels()
{
    if(currPlayer == 0)
        lblP1Name.setText(lblP1Name.setText(myPlayers[currPlayer].getName() + " - " + myPlayers[currPlayer].getScore()));
    else
        lblP2Name.setText(lblP2Name.setText(myPlayers[currPlayer].getName() + " - " + myPlayers[currPlayer].getScore()));
}

该错误似乎出现在我在两个语句上都调用getScore()方法的地方。我收到2条“此处不允许的'void'类型”消息。这是播放器类的片段。
public Player(int number, String name)
{
    this.number = number;
    this.name = name;
    score = 0;
}

public int getScore()
{
    return score;
}

据我所知,在构造函数中将score设置为0并在调用该方法之前构造播放器,我应该不会看到该错误。

另外,我在代码的其他地方使用了getScore()方法,没有任何问题,我确信这是有问题的方法,因为当我从那两行中删除它时,错误消失了。

最佳答案

您两次调用lblP1Name.setText()(第二次调用lblP1Name.setText()的“结果”)

它应该是:

if(currPlayer == 0)
    lblP1Name.setText(myPlayers[currPlayer].getName() + " - " + myPlayers[currPlayer].getScore());
else
    lblP2Name.setText(myPlayers[currPlayer].getName() + " - " + myPlayers[currPlayer].getScore());

09-10 13:41