0

我正在为我的班级在 Eclipse 中做游戏作业。我收到一个错误:

ClassNotFoundException(可抛出);

它停在

public static Jewel[][] grid = new Jewel[8][8];

运行调试器时,它似乎没有进入新的 Jewel[8][8]

我确实在同一个包中拥有 Jewel 类,但我无法弄清楚为什么它找不到该类。我假设它正在尝试生成不同的类,或者在编译时没有生成类的静态部分。欢迎任何补充意见;

这是所在的整个班级

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);
    }
}
4

2 回答 2

-1
public static Jewel[][] grid = new Jewel[8][8];

这不会创建 Jewel 类的实例,而只是对其的引用。您必须显式迭代您的 2D 数组并创建新的 Jewel 实例。

grid[i][j] = new Jewel();

如果您的默认构造函数中有一些代码,这就是它将进入构造函数的位置。

于 2014-02-28T04:40:54.103 回答
-1
While running the debugger it doesnt seem to enter the new Jewel[8][8].

它不会输入jewel[8][8],因为数组索引从0开始。即;从 0-7(计数=8)

于 2014-02-28T04:40:56.813 回答