0

所以我制作了一个 gui,我有一个背景图片。我不知道如何将其设置为背景,所以任何帮助都会很好。一个解释也很好。另外,在我们将该图像作为背景之后,我们如何将图像调整为窗口大小。比如, image.setSize(frame.getHeight(), frame.getWidth()); 但我不知道这是否可行。图像名称为 ABC0001.jpg,框架名称为 frame。谢谢!

4

2 回答 2

3

要调整图像大小,您可以使用


public void paintComponent(Graphics g) {
g.drawImage(img, 0, 0, getWidth(), getHeight(), this); // draw the image
}

or you can use a componentlistener, implemented like:


        final Image img = ...;
        ComponentListener cl = new ComponentAdapter() {
            public void componentResized(ComponentEvent ce) {
                Component c = ce.getComponent();
                img = im1.getScaledInstance(c.getWidth(), c.getHeight(), Image.SCALE_SMOOTH); 
            }
        };

Image quality will degrade over time with the second solution, so it is recommended that you keep the original and the copy separate.

于 2012-04-11T15:29:10.180 回答
0

创建一个扩展 JPanel 的类。让该类通过覆盖paintComponent来加载图像

class BackgroundPanel extends JPanel
{
    Image img;
    public BackgroundPanel()
    {
        // Read the image and place it in the variable img so it can be used in paintComponent
        img = Toolkit.getDefaultToolkit().createImage("ABC0001.jpg");
    }

    public void paintComponent(Graphics g)
    {
        g.drawImage(img, 0, 0, null); // draw the image
    }
}

现在您有了这个类,只需将它添加到您的 JFrame(或任何您想要背景的地方)。

//create refrence if you want to add stuff ontop of the panel
    private BackgroundPanel backGroundPanel;

//constructor
    add(backGroundPanel, BorderLayout.CENTER);

背景的大小将填满整个框架,因此无需缩放它,除非您希望它更小

于 2012-04-11T14:35:38.393 回答