У меня есть JPanel
с нарисованным фоновым изображением и менеджер компоновки, содержащий другие изображения меньшего размера, и все это внутри JFrame
. Фоновое изображение довольно большое, и я хочу, чтобы оно сохраняло соотношение сторон, будь то на большом или маленьком мониторе.
В конце концов, я хочу, чтобы мой LayoutManager
и меньшие изображения в его ячейках были «приклеены» к фоновому изображению.
Я огляделся в поисках ресурсов, и кажется, что во многих примерах используется BufferedImage
, но это не так; это создаст проблему? Ниже я опубликую свой код для рисования изображения. Если мне не хватает какой-либо информации, сообщите мне.
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);
}
}
РЕДАКТИРОВАТЬ:Я должен упомянуть, что я знаю формулу соотношения сторон: исходная высота / исходная ширина x новая ширина = новая высота Однако я не знаю, как правильно использовать это в своих интересах.