Marco de ventana que cubre contenido gráfico

Esta es mi primera publicación aquí y tengo una pregunta que parece realmente nooby, pero esto me ha preocupado durante la última hora.

Estoy creando un JFrame simple con un JPanel en él, pero el marco de borde de Windows 7 parece estar bloqueando mi vista de partes del panel. Por ejemplo, si dibujo un pequeño cuadrado en la coordenada 0,0, no aparecerá y sospecho que está detrás del marco de la ventana.

¡He intentado perder el tiempo con el paquete, el tamaño de conjunto, el tamaño de configuración prefijada, los ajustes configurables y diferentes, pero no consigo que muestre los 20 píxeles más o menos!

Esto es lo que tengo:

public RedSunGame() {
super("Red Sun");

rs = new JPanel(new BorderLayout(), true);
rs.setPreferredSize(new Dimension(WIDTH, HEIGHT));
add(rs, "Center");

setPreferredSize(new Dimension(WIDTH, HEIGHT));
pack();
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}

EDITAR:

Gracias por todas sus respuestas, perdón por la falta de información :)

Estoy usando una estrategia de doble amortiguación que vi en un libro. gameRender y paintScreen están en un bucle de juego estándar. Mi clase RedSunGame extiende JFrame. Todo el código relevante que puede solicitar además de lo anterior:

private static final int WIDTH = 500;
private static final int HEIGHT = 500;
private JPanel rs;
private Graphics2D g2d;
private Image dbImage;

private void gameRender() {
//create buffer
if (dbImage == null){
  dbImage = createImage(WIDTH, HEIGHT);
  g2d = (Graphics2D)dbImage.getGraphics();
}
//clear screen
g2d.setColor(Color.white);
g2d.fillRect(0, 0, WIDTH, HEIGHT);

g2d.setColor(Color.blue);
g2d.setFont(font);
g2d.drawString("FPS: " + FPS, 0, HEIGHT);
g2d.fillRect(30, 30, 10, 10);
}

private void paintScreen() {
Graphics g;
try {
  g = getGraphics();
  if ((g != null) && (dbImage != null))
    g.drawImage(dbImage, 0, 0, null);
  Toolkit.getDefaultToolkit().sync();
  g.dispose();
}
catch (Exception e)
{ System.out.println("Graphics context error: " + e);  }
}

Con mi configuración actual se ve así.http://i.imgur.com/qaabC.png

Esto es lo que sucede si tengo g2d.fillRect (30, 30, 10, 10), el único cambio son las coordenadas 30,30 en lugar de 0,0. Definitivamente se esconde detrás de la frontera en la parte superior.http://i.imgur.com/uzfFe.png

Además, establecerlo en BorderLayout.CENTER no parece hacer una diferencia en ninguno de estos casos.

(lo siento, no permitirá que los nuevos usuarios publiquen imágenes)

EDITAR: Me lo imaginé. Estaba dibujando directamente al JFrame. @ Guillaume Polet ¡Veo por qué no deberías anular el método de pintura de JFrames ya que se dibuja en el marco y no en el panel que debería mostrar el contenido! Gracias

Respuestas a la pregunta(3)

Su respuesta a la pregunta