Java - JPanel无法绘制背景图像

时间:2014-11-30 15:41:01

标签: java jpanel

我正在学习如何在java中使用Gui。目前我正在尝试制作一个简单的程序,打开一个Gui并将图像绘制到背景中。问题是背景是完全白色而不是图像。

代码:

Main.java:

package com.flaghacker.buckygame;

public class Main
{
    public static void main(String[] args)
    {
        GuiFrame guiFrame = new GuiFrame();
    }
}

GuiFrame.java:

package com.flaghacker.buckygame;

import javax.swing.JFrame;

public class GuiFrame extends JFrame
{
    private GuiPanel guiPanel;

    public GuiFrame()
    {
        //General
        super("Title");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //Size
        this.setSize(1100, 650);
        this.setResizable(true);

        //Components
        guiPanel = new GuiPanel();
        this.add(guiPanel);

        //Final
        this.setVisible(true);
    }
}

GuiPane.java:

package com.flaghacker.buckygame;

import javax.swing.ImageIcon;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Image;

public class GuiPanel extends JPanel
{
    private Image backGround;

    public GuiPanel()
    {
        backGround = new ImageIcon("D:\\Install\\Java Projects\\Testing\\Bucky\\Back.jpg").getImage();
    }

    @Override
    public void paint(Graphics g)
    {
        super.paint(g);
        g.drawImage(backGround, 0, 0, null);
    }
}

1 个答案:

答案 0 :(得分:0)

我测试你的代码并且它有效...可能的问题是两个

首先)你的形象不在

"D:\\Install\\Java Projects\\Testing\\Bucky\\Back.jpg"

我建议你使用

"D:/Install/Java Projects/Testing/Bucky/Back.jpg"

并验证 不区分大小写。

秒)图像Back.jpg的宽度和高度更高,为1100 650,因此您只显示左上角的图像