Пара способов:
Используйте JPanel для рисования изображения. Переопределите метод paintomponent(...)
, и основной код будет:
super.paintComponent(g);
g.drawImage(0, 0, getWidth(), getHeight(), this);
Затем вы просто добавляете панель к рамке:
frame.setContentPane( the custom panel );
Теперь изображение будет динамически изменяться по мере изменения размера кадра.
Другой способ - использовать StretchIcon . Этот класс позволит вам растянуть иконку, чтобы заполнить доступное пространство, или растянуть иконку, но сохранить первоначальные пропорции иконы.
StretchIcon icon = new StretchIcon(..);
JLabel label = new JLabel( icon );
frame.add( label );