Quadro de janela cobrindo conteúdo gráfico

Este é o meu primeiro post aqui e eu tenho uma pergunta que parece realmente nooby, mas isso tem me incomodado pela última hora ou mais.

Estou criando um JFrame simples com um JPanel, mas o quadro de borda do Windows 7 parece estar bloqueando minha visão de partes do painel. Por exemplo, se eu desenhar um pequeno quadrado na coordenada 0,0, ele não aparecerá e suspeito que esteja atrás do quadro da janela.

Eu tentei mexer com pack, setsize, setpreferred size, setresizable e layouts diferentes, mas não consigo mostrá-lo para mostrar os 20 pixels mais ou menos!

Isso é o que eu tenho:

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:

Obrigado por todas as suas respostas, desculpe pela falta de informação :)

Estou usando uma estratégia de buffer duplo que vi em um livro. gameRender e paintScreen estão em um loop de jogo padrão. Minha classe RedSunGame estende o JFrame. Todo o código relevante que você poderia solicitar além do acima:

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);  }
}

Com minhas configurações atuais, é assim.http://i.imgur.com/qaabC.png

Isto é o que acontece se eu tiver g2d.fillRect (30, 30, 10, 10), a única mudança sendo as coordenadas 30,30 em vez de 0,0. Está definitivamente se escondendo atrás da borda no topo.http://i.imgur.com/uzfFe.png

Além disso, configurá-lo para BorderLayout.CENTER não parece fazer diferença em nenhum desses casos.

(desculpe não permitir que novos usuários postem imagens)

EDITAR: Eu percebi isso. Eu estava desenhando diretamente para o JFrame. @Guillaume Polet Eu vejo por que você não deve substituir o método de pintura de JFrames como ele desenha para o quadro e não o painel que deve realmente exibir conteúdo !! obrigado

questionAnswers(3)

yourAnswerToTheQuestion