Но его нельзя увидеть, когда установлен GridBagLayout.
Возможно, потому что вы не переопределили метод getPreferredSize()
вашего компонента, поэтому предпочтительный размер будет ( 0, 0).
GridBagLayout попытается отобразить компонент в его предпочтительном размере.
Я думаю, вам нужно будет использовать ограничение fill
при добавлении компонента, чтобы он мог быть автоматически изменен, чтобы заполнить пространство, доступное в ячейке. Прочитайте раздел из учебника по Swing на Как использовать GridBagLayout для получения дополнительной информации и примеров.
Когда я помещаю его в BorderLayout, все выглядит нормально.
При добавлении в ЦЕНТР BorderLayout размер компонента будет изменен для заполнения доступного пространства.