Ваш метод paintComponent
должен учитывать вставки компонента.
Простой способ не беспокоиться об этом - перейти к следующему закрашенному компоненту внутри панели с рамкой, а ваш компонент будет центром BorderLayout
.
(Кстати: IMO, это плохая идея, чтобы расширять JPanel
, когда вы не хотите панель. Просто расширьте JComponent
. Существует различие в компоновке, и также JPanel
может или не может быть по умолчанию Непрозрачно в зависимости от того, какая версия PL & F используется (поэтому вам всегда нужно звонить setOpaque
, если вам не повезло).