BorderLayout no se muestra correctamente

Quiero tener un JFrame, donde a la izquierda y la derecha hay un borde que tiene el color negro y un ancho de withfOfJFrame / 10.

Ahora, mi intento se ve así:

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

Esto agrega un borde negro a la izquierda y la derecha, pero ese borde tiene un tamaño fijo y no se vuelve a calcular al cambiar el tamaño de la ventana. El tamaño no es ni 1/10 de 800 (el ancho inicial del JFrame).

¿Qué estoy haciendo mal? ¿O hay incluso una mejor manera de hacer esto?

Respuestas a la pregunta(2)

Su respuesta a la pregunta