JPanel没有显示背景图片

时间:2015-09-09 10:08:39

标签: java swing jpanel

这是一个非常简单的程序,我已尽力了,但JPanel没有提出背景图像。我只想在我的面板上看一个简单的背景图片。

这是我的代码:

import javax.swing.*;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;
import java.awt.Graphics;

class PanelEx extends JPanel
{
    BufferedImage img;

    PanelEx()
    {
        try
        {
            img = ImageIO.read(new File("C:/Users/Pictures/s_4261.jpg"));
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
    public void printComponent(Graphics g)
    {
        g.drawImage(img,0,0,null);
    }
}

class JPanelEx2 extends JFrame
{
    PanelEx pe;

    public static void main(String args[])
    {
        new JPanelEx2();
    }

    JPanelEx2()
    {
        pe = new PanelEx();

        add(pe);
        setTitle("JPanel Title");
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setSize(320,240);
        setVisible(true);
    }
}

提前致谢

2 个答案:

答案 0 :(得分:5)

替换

public void printComponent(Graphics g) {

@Override
public void paintComponent(Graphics g) {
  super.paintComponent(g);

答案 1 :(得分:1)

不要使用JPanel。只需使用带有Icon的JLabel,就可以不需要自定义代码。

有关详细信息,请参阅背景面板以及将在具有3种不同绘画选项的JPanel上绘制图像的解决方案:

  1. 缩放
  2. 瓷砖
  3. 实际