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.