Метод рисования повторяется 3 раза вместо 1 - PullRequest
0 голосов
/ 19 марта 2020

Я хочу нарисовать прямоугольник при вводе arr[i][j]==1, но метод рисования повторяет процесс 3 раза. Как я могу это исправить?

Я назвал краску из моего основного класса так:

new foo(cnv).start();//cnv is an Integer 2d array

А вот мой класс foo, который рисует прямоугольники:

public class foo extends JPanel{
    Integer k[][];
    public void paint(Graphics g){
        int row=k.length;
        int col=k[0].length;
        System.out.println(row+" "+col);

        for(int i = 0; i < row; i+=1){
            for(int j = 0; j < col; j+=1){
                if (k[i][j]==1)
                    g.fillRect(i,j,10,10);        
            }        
        }    
    }

    public foo(Integer k[][]){
        this.k=k;
    }
    public void start(){
        JFrame frame = new JFrame();
        frame.setSize(1000,1000);
        frame.getContentPane().add(new foo(k));
        frame.setLocationRelativeTo(null);
        frame.setBackground(Color.LIGHT_GRAY);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}
...