我正在为eclipse中的班级做一个游戏任务。我收到了一个错误:
的ClassNotFoundException(抛出);
停在
public static Jewel[][] grid = new Jewel[8][8];
在运行调试器时,它似乎没有进入新的Jewel [8] [8]
我认为宝石级别在同一个包装中,我无法弄清楚为什么它无法找到这个课程。我假设它正在尝试生成一个不同的类,或者在编译时没有生成类的静态部分。欢迎提出任何其他意见;
这是整个班级,位于
package game;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JPanel;
public class PlayArea extends JPanel {
private static final long serialVersionUID = -9165676032115582474L;
public static Jewel[][] grid = new Jewel[8][8];
public PlayArea(){
this.setPreferredSize(new Dimension(Common.jewelWidth*Common.rowColLength,Common.jewelWidth*Common.rowColLength));
this.setLayout(null);
for(int i = 0; i < Common.rowColLength; i++){
for (int j = 0; j < Common.rowColLength; j++){
grid[i][j] = new Jewel();
}
}
}
@Override
public void paintComponent(Graphics g){
Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i <Common.rowColLength;i++){
for(int j = 0; j < Common.rowColLength; j++){
grid[i][j].drawJewel(i, j, g2);
}
}
Jewel grid2 = new Jewel();
grid2.drawJewel(1, 1, g2);
}
}
答案 0 :(得分:-1)
public static Jewel[][] grid = new Jewel[8][8];
这不会创建Jewel类的实例,而只是引用它。您必须显式迭代2D数组并创建新的Jewel实例。
grid[i][j] = new Jewel();
如果你的默认构造函数中有一些代码,那么它就会进入构造函数。
答案 1 :(得分:-1)
While running the debugger it doesnt seem to enter the new Jewel[8][8].
它不会进入宝石[8] [8],因为数组索引从0开始。从0-7(计数= 8)