Java :сохранение соотношения сторон фонового изображения JPanel

У меня есть 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 новая ширина = новая высота Однако я не знаю, как правильно использовать это в своих интересах.

19
задан David Kroukamp 14 August 2012 в 20:15
поделиться