Java: mantendo a proporção da imagem de fundo do JPanel

eu tenho umJPanel com uma imagem de fundo pintada e um gerenciador de layout segurando outras imagens menores, tudo isso dentro de umJFrame. A imagem de fundo é muito grande e eu quero que ela mantenha sua relação de aspecto, seja em um monitor grande ou pequeno.

Eventualmente, eu quero ser capaz de ter meuLayoutManager e as imagens menores em suas células "colaram" na imagem de fundo.

Eu procurei por recursos e parece que muitos exemplos usam umBufferedImage mas eu não sou; Isso representará um problema? Vou postar meu código abaixo para pintar a imagem, se me falta alguma informação por favor me avise.

public class MonitorPanel extends JPanel {
    Image img;
    public MonitorPanel() throws MalformedURLException {
        //add components

        try {
            img = ImageIO.read(new File("src/customer_vlans.jpg"));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
protected void paintComponent(Graphics g)
{
    //paint background image
    super.paintComponent(g);
    //g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
    g.drawImage(img, 0, 0, this);

}

}

EDITAR: Devo mencionar que conheço a fórmula da relação de aspecto:altura original / largura original x nova largura = nova altura No entanto, eu não sei como usar isso corretamente para minha vantagem.

questionAnswers(4)

yourAnswerToTheQuestion