JPanels - это способ создать логическое «деление» пространства, если это имеет смысл. Например, если вы думаете о HTML, вы можете просто размещать элементы один за другим на странице (как на самом деле выглядят некоторые старые HTML-страницы), но гораздо эстетичнее использовать контейнер, такой как таблица, или некоторые теги DIV в стиле CSS. создавать разделы на странице и размещать элементы относительно друг друга гораздо более определенным образом.
JPanels заполняют эту функцию в Swing, где у каждого JPanel есть менеджер раскладок, который определяет, как размечаются его внутренние элементы. Нет ничего необычного в том, чтобы вложить JPanels, например, используя JPanel с макетом границы для меню / строки состояния и т. Д., JPanel в центре этого элемента с дополнительными элементами, а затем дополнительные JPanels внутри этой центральной области «панели содержимого» это дополнительно делит пространство, например, создавая форму ввода на одной части центральной панели.
В этом смысле JPanels вполне сопоставимы с тем, как таблицы и разделы используются в HTML, и вы должны думать о них аналогичным образом при создании макета. Самая важная вещь о JPanels - их способность динамически изменять размеры, перемещая содержащиеся компоненты вокруг. Если вы просто используете, скажем, один JPanel и абсолютно все позиционируете, то вы потеряете основную привлекательность Swing и эту методологию контейнера.