title: Adding Grid of Buttons to JPanel
body: <p>I'm trying to make a grid of 20px x 20px buttons that I define as "cells", blank by default, no special decorations such as shading, and change color when clicked. (They are meant to show "1" just for testing purposes). I make a Cell class to define these buttons, give each an ActionListener.</p>
  
  <pre><code>import javax.swing.*;
  import java.awt.*;
  import java.awt.event.ActionEvent;
  import java.awt.event.ActionListener;
  
  public class Cell implements ActionListener
  {
      private JButton button;
      private EditorPanel editorPanel;
  
      public Cell(EditorPanel editorPanel){
      button = new JButton("1'");
      button.addActionListener(listener -&gt; colorCell());
      button.setPreferredSize(new Dimension(20,20));
      button.setMargin(new Insets(0,0,0,0));
      button.setOpaque(true);
      button.setContentAreaFilled(false);
      this.editorPanel = editorPanel;
      }
  
  public JButton getButton() {
      return button;
  }
  
  public void colorCell()
  {
      button.setBackground(Color.BLACK);
  }
  
  @Override
  public void actionPerformed(ActionEvent e) {
  
  }
  
  }
  </code></pre>
  
  <p>and then use an array of Cell objects (cells) in my EditorPanel class to create a grid of these buttons with dimensions defined by "col" and "row". </p>
  
  <pre><code>import java.awt.Dimension;
  import java.awt.GridLayout;
  import java.awt.Toolkit;
  
  
  import javax.swing.JFrame;
  import javax.swing.JPanel;
  public class EditorPanel{
  
  public JFrame jframe;
  public JPanel jpanel;
  public static EditorPanel editorPanel;
  public Render render;
  public static final int col = 45, row = 45,  tile_size=20;
  public static final int panelWidth=900, panelHeight=900;
  public Dimension dim;
  public int coloredPixels;
  
  public Cell[][] cells; 
  
  public void getFrame() {
  
      editorPanel = new EditorPanel();
      dim = Toolkit.getDefaultToolkit().getScreenSize();
      jframe = new JFrame("Pixel Art Creator");
      jframe.setVisible(true);
      jframe.setSize(panelWidth+17, panelHeight+40);
      jframe.setLocation(dim.width/2 - jframe.getWidth()/2, dim.height/2 - jframe.getHeight()/2);
      jframe.add(render = new Render());
      jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  }
  
  private JPanel addCells()
  {
      cells=new Cell[row][col];
      JPanel panel = new JPanel(new GridLayout(row, col));
      for(int i = 0; i&lt; row; i++){
          for(int j = 0; j&lt;col; j++){
              cells[i][j] = new Cell(this);
              panel.add(cells[i][j].getButton());
          }
      }
      return panel;
  }
  
  public static void main (String[] args)
  {
      editorPanel = new EditorPanel();
      editorPanel.getFrame();
      editorPanel.addCells();
  }
  
  }
  </code></pre>
  
  <p>I then try to add each created Cell object that I attempted to put into the cells array in the addCells() method and add it to my JPanel. When I run this code I don't get any buttons, meaning that these buttons aren't being added to JPanel. How should I go about this?</p>