【问题标题】:Printing a String[] into JLabel / JPanel - JFrame?将字符串 [] 打印到 JLabel / JPanel - JFrame 中?
【发布时间】:2014-05-12 03:00:57
【问题描述】:

我正在尝试打印前 10 名的分数和他们的名字。

我的声明:

private JLabel JSingleplayer [];
private JLabel JSingleScore [];
private String [] PlayerName = {"----------","----------","----------","----------","----------","----------","----------","----------","----------","----------"};
private String [] PlayerScore = {"--","--","--","--","--","--","--","--","--","--",};

并尝试将其全部打印在这里:

for (int x = 0; x < 10; x++)
{
    JSingleplayer[x].setText(Singleplayer[x]);
    JSingleplayer[x] = new JLabel(Singleplayer[x]);
    EndPanelscore.add(JSingleplayer[x]);
    JSingleScore[x].setText(SingleScore[x]);
    EndPanelscore.add(JSingleScore[x]);
}
EndFrame.add(EndPanelscore);

我在添加 for 循环时遇到了一个大错误,它不允许打印数组。

如果您有解决方案或更好的方法来编码该部分(工作)请帮助我以我编码的方式。会给 5 分,就像,所有的好东西。

【问题讨论】:

标签: swing jpanel jlabel jtextfield arrays


【解决方案1】:

您遇到了一些问题。

首先,在 Java 中,您需要在为数组赋值之前声明数组的长度。

其次,您的代码试图在标签分配给数组之前设置标签的文本。

第三,您使用的变量不存在 (Singleplayer)。

尝试以下更改,看看是否可以从那里开始......

private JLabel JSingleplayer [] = new JLabel[10];

for (int x = 0; x < 10; x++)
{
    JSingleplayer[x] = new JLabel(PlayerName[x]);
    // the following assumes you've also declared EndPanelscore...
    EndPanelscore.add(JSingleplayer[x]);
    // you have similar problems here...
    //JSingleScore[x].setText(SingleScore[x]);
    //EndPanelscore.add(JSingleScore[x]);
}

【讨论】:

  • 我改成 System.out.println("Before singleplayer"); JSingleplayer[x] = new JLabel(Singleplayer[x]); JSingleplayer[x].setText(Singleplayer[x]); EndPanelscore.add(JSingleplayer[x]); //但还是同样的问题:(
  • 现在看到更多问题...更新了我的答案。
  • 非常感谢!您刚刚为我节省了数小时的反复试验。当我问这个问题时,我不小心更改了值,但问题出在 JSingleplayer[x].setText(Singleplayer[x]); 上。再次感谢!
猜你喜欢
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-11
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
相关资源
最近更新 更多