Не наследуйте от JPanel
, если ваш компонент не состоит из нескольких подкомпонентов. В большинстве случаев достаточно наследования от JComponent
.
Что касается изменения размера ... переопределить getPreferredSize
, getMinimumSize
и getMaximumSize
методы для получения соответствующего поведения в менеджерах компоновки .
Если ваш компонент состоит из подкомпонентов, в большинстве случаев предпочтительный размер уже определяется комбинацией подкомпонентов, поэтому вам не нужно переопределять этот.