Вы устанавливаете GridLayout
для конструктора JFrame
вместо JPanel
(по умолчанию JPanel FlowLayout
), я думаю, что
header.setLayout(new GridLayout(3,1));
header.add(add1);
header.add(save);
уведомление ---> но GridLayout
в текущем ComponentOrientations
для начала слева направо, then 3rd. grid is empty
затем только добавить JFrame#add(JPanel)
, в вашем случае
add(header);