java - 无法访问在设计 View 中创建的 Netbeans 数组

标签 java netbeans

我试图创建一个简单的扫雷游戏(用户可自定义)。 在编写它时,我尝试创建一个 JButtons 的网格。 (通过 JButton 数组)使用 netbeans 设计 View 并将此代码输入到 JPanel 中:

JButton mines[] = new JButton [gridXVal*gridYVal];
mineGrid.setLayout(new java.awt.GridLayout(gridXVal,gridYVal));
for (int i = 0 ; i < mines.length ; i++)
        {
            mines [i] = new JButton(" ");
            mines [i].setActionCommand ("" + i);
            mines[i].addActionListener(listener);
            //mines [i].setBorder (null);
            //mines [i].setBorderPainted (false);
            mineGrid.add (mines [i]);
}

后来,当我通过方法访问它时

ImageIcon icon = new ImageIcon(mineCounter+".png");
mines[a].setIcon(icon);

它给了我一个错误,"cannot find symbol" 。我尝试配置 JPanel因此它是公开的,但我仍然无法在我的方法中预生成的代码之外对其进行编辑。

这是当我单击按钮尝试将其图像设置为某些内容时出现的错误:

Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: 
   Uncompilable source code - Erroneous sym type: <any>.setIcon
    at gameScreen.clickDraw(gameScreen.java:227)
    at gameScreen$3.actionPerformed(gameScreen.java:170)

任何帮助将不胜感激!

最佳答案

我假设这部分代码:

mineGrid.setLayout(new java.awt.GridLayout(1, 0));
JButton mines[] = new JButton [gridXVal*gridYVal];
mineGrid.setLayout(new java.awt.GridLayout(gridXVal,gridYVal));
for (int i = 0 ; i < mines.length ; i++)
{
    mines [i] = new JButton(" ");
    mines [i].setActionCommand ("" + i);
    mines[i].addActionListener(listener);
    //mines [i].setBorder (null);
    //mines [i].setBorderPainted (false);
    mineGrid.add (mines [i]);
}

由您通过 Netbeans 中的“代码”编辑选项之一手动输入。

您需要采用JButton mines[] = new JButton [gridXVal*gridYVal];并在类级别声明它并修改您的“自定义代码”以初始化此变量...

private JButton mines[];

private void initComponents() {
    //...
    mineGrid.setLayout(new java.awt.GridLayout(1, 0));
    JButton mines[] = new JButton [gridXVal*gridYVal];
    mineGrid.setLayout(new java.awt.GridLayout(gridXVal,gridYVal));
    for (int i = 0 ; i < mines.length ; i++)
    {
        mines [i] = new JButton(" ");
        mines [i].setActionCommand ("" + i);
        mines[i].addActionListener(listener);
        //mines [i].setBorder (null);
        //mines [i].setBorderPainted (false);
        mineGrid.add (mines [i]);
    }
    //...
}// </editor-fold>      

关于java - 无法访问在设计 View 中创建的 Netbeans 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45316337/

相关文章:

java - 如何更改 java 编译器的语言?

java - 使用 PGP Bouncy CaSTLe 依赖项创建 CipherOutputStream

java - 无法使用netbeans 7.4连接mysql

java - Scene Builder 无法打开 FXML 文件

maven - 类似于 intellij 的 nbactions.xml 的文件

java - jar 文件在 dist 中不起作用(netbeans 的 swing 项目)

java - 格式化自定义日期时出现日期解析错误

java - 调用包含 hbm2ddl 任务的 ant 脚本时,Runtime.exec 会卡住吗?

java - 如何在 Java 中更改列表中项目的顺序并保持线程安全?

java - 试图纠正一个程序,甚至无法让它运行