for 循环获取错误"illegal start of type"



所以我试图在Java中创建一个程序,该程序将创建一个10×10的矩阵,每个元素随机显示1或0。这是我到目前为止所拥有的:

package random.matrix;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
class ex2 extends JFrame {
    class Random {
        GridLayout setLayout= new GridLayout(10, 10);
        for (int i = 0; i < 10; i++) {
            int number = (int) (Math.random() * 2);
            String str = Integer.toString(number);
            add(new JLabel(str, JLabel.CENTER));
        }
    }
    public static void main(String[] args) {
        JFrame frame = new ex2();
        frame.setTitle("RandomMatrix");
        frame.setSize(400, 400);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

据我所知,该程序应该可以完美运行。但是,每次我尝试时,它都会说一些类似于"非法开始类型"的内容,特指 for 循环线。谁能帮我解决这个问题?我从未遇到过这样的错误。

您需要将代码放在代码块(如方法或构造函数)中,而不是内部类的类块中

/**
 * TODO: Refactor later NOT to extend from JFrame
 */
class MyFrame extends JFrame {
    void initComponents() {
        GridLayout setLayout = new GridLayout(10, 10);
        for (int i = 0; i < 10; i++) {
          ...
        }
    }
    ...
}

类定义中不能有任意语句。也许你想把它放在构造函数中?

class Random {
    public Random() {
        GridLayout setLayout = new GridLayout(10, 10);
        for (int i = 0; i < 10; i++)
        {
           int number = (int) (Math.random() * 2);
           String str = Integer.toString(number);
           setLayout.add(new JLabel(str, JLabel.CENTER));
        }
    }
}

或者,您可以创建另一个方法并将其放置在那里。

相关内容

最新更新