java BoxLayout alineación del panel

He navegado y no he encontrado una solución que se adapte específicamente a mi situación. Tengo un panel que visualizo en un cuadro de diálogo:

//create dialog panel
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.add(headerPanel);
panel.add(type1Panel);
panel.add(type2Panel);
panel.add(type3Panel);
panel.add(type4Panel);
panel.add(type5Panel);
panel.add(type6Panel);

int result = JOptionPane.showConfirmDialog(null, panel, "Please enter values.", JOptionPane.OK_CANCEL_OPTION);

El tamaño de los últimos dos paneles, tipo 5 y tipo 6, son del mismo tamaño, por lo que se ven bien. Sin embargo, el encabezado y los primeros 4 paneles son de diferentes tamaños y me gustaría que todos se alineen. Hasta el momento no he encontrado una buena solución sobre cómo solucionar esto.

La pregunta es, ¿cómo puedo alinear los primeros 5 paneles, pero no los 2 últimos? Si no, ¿cómo puedo dejar alinearlos a todos? El setalignmentx () no está disponible para paneles. Intenté usar GridLayout, pero luego el ancho de la ventana principal de la interfaz gráfica es bastante grande y no se adapta bien a la pantalla, de ahí el BoxLayout a lo largo del eje Y. Gracias por cualquier ayuda o sugerencia.

Respuestas a la pregunta(6)

Su respuesta a la pregunta