Java在对象的背景图象。找不到我的公共变量

时间:2012-09-10 01:39:19

标签: java image swing paintcomponent

我想要的是,每当一个细胞被认为是“死亡”时,这个图像

http://preview.turbosquid.com/Preview/Content_2009_07_25__02_34_32/dead%20cell%201.jpg8c11d904-1879-4bd9-b31c-439bcbb83646Larger.jpg

显示在对象的背景上。

我在包p_game中有一个名为“Game”的类,代码如下

public class Game{
    public Image bg_image;
    public Game(){
           //Here is code that creates a 17*17 table of cells with the status 'Dead' 
        this.Cellules= new p_cell.Cellule[17][17];  
        for (int i=1; i<17; i++){
           for (int j=1; j<17; j++){
               Cellules[i][j]=new p_cell.Cellule(i,j,"Dead");
           }
        }
           //Here is code for the URL and Image
           URL url;
           try {
               url = new URL("http://preview.turbosquid.com/Preview/Content_2009_07_25__02_34_32/dead%20cell%201.jpg8c11d904-1879-4bd9-b31c-439bcbb83646Larger.jpg");
               bg_image = Toolkit.getDefaultToolkit().getDefaultToolkit().createImage(url);
           } catch (MalformedURLException e) {
            e.printStackTrace();
           }
    }
­}

我正在尝试在我的类Cell中使用bg_image(在包p_cell中),但它说该变量不存在。我在这里缺少什么?

public class Cell{
    public void paintComponent(Graphics g){

        g.drawImage(bg_image, 0, 0);

    } 
}

给出错误:bg_image无法解析为变量

1 个答案:

答案 0 :(得分:0)

每个变量都属于一个类或类实例。
要使用bg_image,您必须实例化Game类,如下所示:Game game = new Game();,然后将其与实例引用一起使用:game.bg_image
如果您不想拥有Game类的实例,则应将bg_image设为静态并使用它:Game.bg_image
补充阅读:
关于静态变量:http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
关于实例变量:http://docs.oracle.com/javase/tutorial/java/javaOO/variables.html