Java Eclipse Eclipse 2D数组将无法正常工作

时间:2012-03-13 20:25:48

标签: java eclipse

我正在尝试在java中创建一个整数数组,但由于某种原因它不会起作用...

我做了以下

int[][] vLines = new int[2][2];

当我尝试初始化数组元素时,我从Eclipse中遇到问题,

  vLines[0][0] = (int)(1*.33);
  vLines[0][1] = (int)(1*.33);
  vLines[1][0] = (int)(1*.33);
  vLines[1][1] = (int)(1*.33);

当我尝试在我的数组元素中存储值时,eclipse说“语法错误,插入'}'来完成块”在我的数组init的最后一行...

我知道在我的计划中我的大括号平衡没有任何问题...

我认为它可能是演员,所以我删除了'(int)',仍然无效...

我尝试将我的元素初始化为某个整数(e.x.1),仍然无效...

我已经尝试初始化一个元素,仍然无效......

我尝试将我的int数组声明拆分为2行,然后继续这样但它仍然无效...

int[][] vLines;
vLines = new int[2][2];

但我仍然在平衡方面遇到错误......

我也尝试过从在线教程中复制和粘贴java 2D数组示例,他们不会在eclipse中工作,我已经关闭并启动了eclipse并清理了proj ..仍然不是

我错过了什么?我需要动态初始化我的数组元素,但我不能让我的简单2d数组保存任何东西......

这是我的整个代码文件......

import javax.swing.*;
import java.awt.*;

public class ColoredGrid extends JPanel {

    final int ROWS = 2;
    final int COLS = 2;

    int vLines[][] = new int[ROWS][COLS];

    vLines[0][0] = (int)(1*.33);
    vLines[0][1] = (int)(1*.33);
    vLines[1][0] = (int)(1*.33);
    vLines[1][1] = (int)(1*.33);


    public ColoredGrid() {

    }

    protected void paintComponent(Graphics g){
        super.paintComponent(g);


    }

}

3 个答案:

答案 0 :(得分:3)

“vLines [0] [0] =(int)(1 * .33);”在课堂上不允许等等。它们应该位于初始化块{}或构造函数中。

{ // init block
  vLines[0][0] = (int)(1*.33);
  vLines[0][1] = (int)(1*.33);
  vLines[1][0] = (int)(1*.33);
  vLines[1][1] = (int)(1*.33);
}

答案 1 :(得分:1)

您的问题是,您为vLines分配值的行不在任何函数/块中,您不能这样做。相反,将这些行添加到构造函数或您希望初始化完成的任何位置:

public ColoredGrid() {
   vLines[0][0] = (int)(1*.33);
   vLines[0][1] = (int)(1*.33);
   vLines[1][0] = (int)(1*.33);
   vLines[1][1] = (int)(1*.33);
}

如果您不想在构造函数中使用该代码,则可以选择初始化程序块。只需在四行附近添加{ }即可创建一个块。您可能之前看过static { ... },这很相似,但由于vLines不是static,您会忽略该关键字。阅读Java教程的this page以获取有关初始化的信息。

编辑:亚当打赌我是初始化块。

答案 2 :(得分:0)

您在程序中的某个位置缺少括号。这听起来很愚蠢,但是到你的程序结束并确保最后有正确数量的括号。我保证就是这样。

尝试注释掉您的数组代码并查看问题是否仍然存在。如果是这样,编辑您的原始帖子以包含整个.java文件内容,并看看我是否可以为您修复它。