Похоже, ваше требование относительно простое в использовании BorderLayout.
Фрагмент кода ниже предполагает, что панель добавляется в JFrame. Следовательно, getContentPane () вызывает.
javax.swing.JPanel jPanel1 = new javax.swing.JPanel();
javax.swing.JPanel jPanel2 = new javax.swing.JPanel();
jPanel1.setMaximumSize(new java.awt.Dimension(60, 32767));
jPanel1.setMinimumSize(new java.awt.Dimension(60, 100));
jPanel1.setPreferredSize(new java.awt.Dimension(60, 300));
getContentPane().add(jPanel1, java.awt.BorderLayout.WEST);
getContentPane().add(jPanel2, java.awt.BorderLayout.EAST);
Укажите максимальную, минимальную и предпочтительную ширину jPanel1 равной 60 пикселей. Оставьте JPanel2 "плавать".
Если требуется разделение панелей, добавьте третью панель фиксированной ширины (скажем, 5 пикселей)
getContentPane().add(jPanel3, java.awt.BorderLayout.CENTER);