Java toString不在JApplet中打印实际数组值

Java toString不在JApplet中打印实际数组值,java,arrays,tostring,Java,Arrays,Tostring,这是我的小程序 所以我认为问题在于我如何调用.toString,我的谷歌搜索结果表明我应该使用java.util.array?我试过了,但我不知道怎么了。我知道这是一个简单的语法错误,但我不知道它是什么 所发生的情况是,花名册编号打印到小程序上,但所有值都是0.00或0,或以各自的格式表示的任何0 另外,在我的actionperformed方法中调用repaint(),在setup函数中,消除以下情况: for(x = 0; x < 31; x++){ roster[x] = new

这是我的小程序

所以我认为问题在于我如何调用
.toString
,我的谷歌搜索结果表明我应该使用
java.util.array
?我试过了,但我不知道怎么了。我知道这是一个简单的语法错误,但我不知道它是什么

所发生的情况是,花名册编号打印到小程序上,但所有值都是0.00或0,或以各自的格式表示的任何0


另外,在我的
actionperformed
方法中调用
repaint()
,在
setup
函数中,消除以下情况:

for(x = 0; x < 31; x++){
  roster[x] = new Student("", 0, gtest);
}

你试过调用repaint()吗?我试过了,它在我的actionperformed方法中。首先,你从x=0到31的循环导致数组索引超出范围,因为花名册数组的大小只有10。此外,你的toString工作得很好!问题是它们的绘制超出了小程序的范围。尝试将小程序的大小调整得更高(在去掉x=0-31 for循环之后),您将看到您的文本打印出来,这可能是您所期望的。
public String toString(){
    DecimalFormat tens = new DecimalFormat("0.00");
    String ans = String.format("%-20s%-8s %-5s%-5s%-5s%-5s%-5s%-10s", name, year,
    grades[0], grades[1], grades[2], grades[3], grades[4], tens.format(gpa));
    return(ans);

}
for(x = 0; x < 31; x++){
  roster[x] = new Student("", 0, gtest);
}
// Ger rid of the outer loop on c
// for (int c = 0; c < 1) {
// Change your initial b value from 250 to 115. 250 is too low for your window
for(int b = 115, c = 0; c < 9; b = b + 10){
    g.drawString(roster[c].toString(), 10, b);
    c++;
}
// }