title: java, swing, Gridlayout problem
body: <p>I have a panel with GridLayout</p>
  
  <p>But when I'm trying to run the program, only the first button out of 100 is shown.
  Futhermore, the rest appear only when I move the cursor over them.
  What's wrong with it?</p>
  
  <p>Here's the whole class(Life.CELLS=10 and CellButton is a class which extends JButton)</p>
  
  <pre><code>public class MainLayout extends JFrame {
  
      public MainLayout() {
  
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setSize(650, 750);
          setLayout(new FlowLayout());
          //setResizable(false);
  
          final JPanel gridPanel = new JPanel(new GridLayout(Life.CELLS, Life.CELLS));
  
          for (int i=0; i&lt;Life.CELLS; i++) {
              for (int j=0; j&lt;Life.CELLS; j++) {
                  CellButton jb = new CellButton(i, j);
                  jb.setPreferredSize(new Dimension(jb.getIcon().getIconHeight(), jb.getIcon().getIconWidth()));
                  buttons[i][j] = jb;
                  grid[i][j] = false;
  
                  gridPanel.add(jb);
              }
          }
          add(gridPanel);
      }
  }
  </code></pre>
  
  <p>This is code of CellButton</p>
  
  <pre><code>package classes;
  
  import javax.swing.JButton;
  import javax.swing.ImageIcon;
  import javax.swing.JFrame;
  
  public class CellButton extends JButton {
  
      private int x;
      private int y;
      boolean alive;
      ImageIcon icon;
      boolean next;
  
      // icons for grids
      final ImageIcon dead = 
          new ImageIcon(JFrame.class.getResource("/images/image1.gif"));
      final ImageIcon live = 
          new ImageIcon(JFrame.class.getResource("/images/image2.gif"));
  
      public CellButton(int X, int Y) {
          super();
          x = X;
          y = Y;
          alive = false;
          icon = dead;
          setIcon(icon);
      }   
  
      public int getX() {
          return x;
      }
  
      public int getY() {
          return y;
      }
  
      public boolean isAlive() {
          return alive;
      }
  
      public void relive() {
          alive = true;
          icon = live;
          setIcon(icon);
      }
  
      public void die() {
          alive = false;
          icon = dead;
          setIcon(icon);
      }
  
      public void setNext(boolean n) {
          next = n;
      }
  
      public boolean getNext() {
          return next;
      }
  
      public ImageIcon getIcon() {
          return icon;
      }
  }
  </code></pre>