O BorderLayout não aparece corretamente

Eu quero ter um JFrame, onde à esquerda e à direita há uma borda que tem a cor preta e uma largura de withfOfJFrame / 10.

Agora, minha tentativa parece assim:

JFrame f = new JFrame();
f.setSize(800, 600);
f.setLayout(new BorderLayout());

JPanel leftBorder = new JPanel();
JPanel rightBorder = new JPanel();
leftBorder.setBackground(Color.black);
rightBorder.setBackground(Color.black);
leftBorder.setSize(f.getWidth()/10, f.getHeight());
rightBorder.setSize(f.getWidth()/10, f.getHeight());
JPanel center = new JPanel();
center.setBackground(Color.red);

f.add(leftBorder, BorderLayout.WEST);
f.add(center, BorderLayout.CENTER);
f.add(rightBorder, BorderLayout.EAST);    
f.setVisible(true);

Isso adiciona uma borda preta à esquerda e à direita, mas essa borda tem um tamanho fixo e não recalcula ao redimensionar a janela. O tamanho não é mesmo 1/10 de 800 (a largura inicial do JFrame).

O que estou fazendo de errado? Ou há ainda uma maneira melhor de fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion