JPanel de crecimiento dinámico con BoxLayout (en un diseño nulo)

Tengo un JPanel con un BoxLayout vertical encima de un JPanel con un diseño nulo.

Me gustaría que el JPanel con el BoxLayout crezca a medida que se agreguen los componentes.

Ver este codigo

public static void main (String[] args) {
    JFrame f = new JFrame();
    f.setSize(500,500);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    JPanel total = new JPanel();
    total.setLayout(null);
    total.setSize(f.getWidth(),f.getHeight());
    total.setBackground(Color.green);
    JPanel box = new JPanel();
    box.setLocation(100,200);
    box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS));
    box.add(new JButton("test"));
    box.add(new JLabel("hey"));
    total.add(box);
    f.add(total);
    f.setVisible(true);
}

Notarás que no aparecen componentes.

¿Cómo puedo hacer el "cuadro" de JPanel de manera que el tamaño aumente dinámicamente a medida que agrego más componentes (que se agregan verticalmente)?

POR ADELANTADO: Necesito que la posición de "caja" esté exactamente en 100,200, así que, por favor, no sugiera que no use un diseño nulo. Debo utilizar el diseño nulo. El diseño nulo de "total" no debería afectar la respuesta a mi pregunta, que se centra en el panel "cuadro".

Respuestas a la pregunta(4)

Su respuesta a la pregunta