JFrame
по умолчанию использует BorderLayout
, поэтому ваш компонент заполняет весь размер окна. См. Как использовать BorderLayout для получения более подробной информации.
На самом деле, я бы рекомендовал также прочитать Компоновка компонентов в контейнере , чтобы лучше понять, как работает система управления компоновкой.
Следует помнить, что «ручное» размещение компонентов обычно не рекомендуется в большинстве случаев, вместо этого вам следует использовать один или несколько менеджеров компоновки.
В качестве общих рекомендаций вам также следует избегать расширения из контейнеров верхнего уровня, таких как JFrame
, так как в нем рассматривается один вариант использования, контейнеры верхнего уровня, как правило, сложные, составные компоненты, и вы просто не добавляете никаких новый функционал для класса в целом. Лучше просто создавать их, когда они вам нужны, и заполнять их необходимыми компонентами.