Desenho retangulo

 Pessoal comecei a fazer um jogo de damas, só q estou com dificuldade pra desenhar os componentes na tela, a lógica ja esta toda feita só tenho duvida na parte de jogar no Frame. Ai vai meu codigo: 
package game;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.nio.Buffer;

import javax.swing.JFrame;
/**
   * Esse codigo cria o Frame e desenha os retangulos nele c/ o metodo criaretangulo()
*/

public class Frame extends JFrame {
	
	private final int size = 30, size2 = 15, sizep = 12;
	private final int largura = size*8, altura = size*8;
	BufferedImage imagebuffer;
	Color cor = new Color(255,250,250);
	private int x=0, y=0;
		
	public Frame(){
		super("Damas");
		this.setSize(largura, altura);
		this.setLayout(null);
		this.getContentPane().setBackground(cor);
		this.setVisible(true);
		
		Criaretangulo();
			
		
		this.setVisible(true);
	}
	
	public void Criaretangulo(){
		// tam e tipo de cada retangulo
		imagebuffer = new BufferedImage(size, size, BufferedImage.TYPE_INT_RGB);
		
		// variavel de Graphics recebe o valor de imegebuffer, para desenhar em um espaço reservado de memória
		Graphics grafico = imagebuffer.createGraphics();
		// cor com a qual vai desenhar
		grafico.setColor(Color.GRAY);
		// desanhando retangulo preenchido de acordo c/ as posicoes x e y = 0
		grafico.fillRect(x, y, size, size);
		// desenha outro quadrado em outra posicao: x = 30; y = 30 (tamanho de size)
		grafico.setColor(Color.GRAY);
		grafico.fillRect(size, size, size, size);
		
		this.setVisible(true);
		
	}
}
package game;

public class Principal {

	/**
	 * @param args
         * Classe Principal que chama o frame
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
	        Frame frm = new Frame();
         
	}
}
  Só que quando eu rodo não aparece nenhum quadrado no Frame. Se alguem souber me ajude. Obrigado.

Dê uma lida sobre Java2D. É razoavelmente simples:
http://www.pontov.com.br/site/java/48-java2d/97-pintando-no-java-2d
http://docs.oracle.com/javase/tutorial/2d/geometry/primitives.html

Um exemplo:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;

public class Tabuleiro extends JPanel {
	@Override
	protected void paintComponent(Graphics g){
	  	super.paintComponent(g);
	  	
	  	Rectangle2D.Double r;

	  	Graphics2D g2 = (Graphics2D) g.create();
		g2.setPaint(Color.WHITE);
	  	r = new Rectangle2D.Double(1,1,100,100);
	  	g2.fill(r);
	  	r = new Rectangle2D.Double(100,100,100,100);
	  	g2.fill(r);

		g2.setPaint(Color.BLACK);
		r = new Rectangle2D.Double(1,100,100,100);
	  	g2.fill(r);
	  	r = new Rectangle2D.Double(100,1,100,100);
	  	g2.fill(r);

	  	g2.dispose();
	}
}
import javax.swing.JFrame;

public class Tela1 extends JFrame {

    public Tela1() {
    	setExtendedState(JFrame.MAXIMIZED_BOTH);
    	getContentPane().add(new Tabuleiro());
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
    public static void main(String args[]){
    	new Tela1().setVisible(true);
    }
}

Com um pouco de matemática, dá pra gerar o tabuleiro usando laços for.

Abraço.

   Valeu ae cara vou ler sobre o assunto e implementar aqui.  :)
   Cara to com um problema aqui o eclipse Juno aqui que eu tenho não funciona o recurso de auto completação não sei porque. Você sabe o que pode ser ? Ele nem importa as classes da API do java Ex: JPanel, JTextfield...  :)
   Cara consegui resolver o problema do auto-completar. Agora gostaria de colocar uma borda em torno do tabuleiro, se é que vc me entende, pra diferenciar o tabuleiro do resto do Frame,q tb tem o fundo branco. Li um pouco sobre o Graphics2D e nele tem um método setStroke(), do Graphics2D para setar borda.
   Tentei fazer aqui só que ele so seta a borda pra cada retângulo separadamente, queria colocar no tabuleiro inteiro. Vou postar me codigo aqui : 
        package game;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Rectangle2D;

import javax.swing.JPanel;


public class Tabuleiro extends JPanel  {

	int i,j;
	int size=45;
	
	public Tabuleiro(){
		
		this.setBackground(Color.WHITE);
		this.setVisible(true);
	}
	
	protected void paintComponent(Graphics g){
		super.paintComponent(g);
				
		Rectangle2D.Double r;
		Graphics2D g2 = (Graphics2D) g.create();
		final BasicStroke stroke = new BasicStroke(10.0f); // falta o formato aqui
		
		
		// Usando for pra desenhar em toda a mesa os quad. Pretos
		for(i=2;i<6;i++)
			for(j=2;j<6;j++){
						
				g2.setColor(Color.BLACK); 
				r = new Rectangle2D.Double(i*2*size, j*2*size, size, size);
				g2.fill(r); // desenha a forma pintada
				
				r = new Rectangle2D.Double(i*2*size+size, j*2*size+size, size, size);
				g2.fill(r); // desenha a forma pintada
								
				
			}
			g2.setStroke(stroke);  // coloca borda no tabuleiro inteiro(dando errado aqui)
			g2.dispose();
				
	}
}

Classe Principal(nao modifiquei nada):

package game;

import java.awt.Color;

import javax.swing.JFrame;

public class Principal extends JFrame {
	
	
	public Principal(){
		setExtendedState(JFrame.MAXIMIZED_BOTH);
		this.getContentPane().add(new Tabuleiro());
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new Principal().setVisible(true);			
		
	}

}

Ao invés de usar o setStroke(), coloque um retângulo (Rectangle2D) de fundo e desenhe o tabuleiro sobre ele. Note que esse retângulo tem que ser maior que todos os outros retângulos juntos, senão não vai aparecer. Algo do tipo:

[code]protected void paintComponent(Graphics g){
super.paintComponent(g);

Rectangle2D.Double r;
Graphics2D g2 = (Graphics2D) g.create();

g2.setPaint(Color.BLUE);

// os valores são fictícios, só pra você ter uma ideia de
// que ele deve ser maior que todos os demais juntos
Rectangle2D fundo = new Rectangle2D.Float(0,0,1000,1000);

// aqui você desenha o tabuleiro, do jeito que já fez.
// talvez seja necessário colocá-lo um pouco mais para a direita e mais para baixo

}[/code]

Abraço.