Java: utrzymanie proporcji obrazu tła JPanel
mamJPanel
z pomalowanym obrazem tła i menedżerem układu z innymi mniejszymi obrazami, wszystko to wewnątrzJFrame
. Obraz tła jest dość duży i chcę mieć możliwość utrzymania jego współczynnika proporcji, zarówno na dużym, jak i małym monitorze.
W końcu chcę móc mieć mojąLayoutManager
a mniejsze obrazy w komórkach „przyklejone” do obrazu tła.
Szukałem zasobów i wydaje się, że wiele przykładów używa aBufferedImage
ale nie jestem; czy to będzie stanowić problem? Opublikuję poniższy kod, aby malować obraz. Jeśli nie mam żadnych informacji, daj mi znać.
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);
}
}
EDYTOWAĆ: Powinienem wspomnieć, że znam formułę współczynnika proporcji:oryginalna wysokość / oryginalna szerokość x nowa szerokość = nowa wysokość Nie wiem jednak, jak prawidłowo to wykorzystać.