Java 使用drawImage在JPanel中绘制图像

Java 使用drawImage在JPanel中绘制图像,java,swing,jpanel,drawimage,Java,Swing,Jpanel,Drawimage,我可以请你帮忙吗?我在JPanel里画图像有点困难。我曾经创建了一个扩展JPanel的类,并这样做了 public class Example extends JPanel { BufferedImage background; public Example () { background = loadImage(); } private BufferedImage loadImage(){ UR

我可以请你帮忙吗?我在JPanel里画图像有点困难。我曾经创建了一个扩展JPanel的类,并这样做了

public class Example extends JPanel {

    BufferedImage background;

    public Example () {

        background = loadImage();   
    }           

    private BufferedImage loadImage(){
        URL imagePath = getClass().getResource("Immagini/Board.png");
        BufferedImage result = null;
        try {
            result = ImageIO.read(imagePath);
        } catch (IOException e) {
            System.err.println("Errore, immagine non trovata");
        }

        return result;
    }

     @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Dimension size = getSize();
        g.drawImage(background, 0, 0,size.width, size.height,0, 0, background.getWidth(), background.getHeight(), null);

    }
}

它非常完美,现在我不能这样做,因为我的newExample类扩展了GenericeExample,所以也不能扩展JPanel。我有
JPanel panel=new JPanel()
在我想要像上面代码中那样绘制的新示例中,我如何调整它以在这种不同的情况下使用

您仍然可以重用
示例
类。而不是
JPanel panel=newjpanel()您将使用覆盖的面板类:

JPanel panel = new Example();
另一种方法是使用
JPanel
的匿名实现:

JPanel panel = new JPanel(){
    BufferedImage background = loadImage();

    private BufferedImage loadImage(){
        URL imagePath = getClass().getResource("Immagini/Board.png");
        BufferedImage result = null;
        try {
            result = ImageIO.read(imagePath);
        } catch (IOException e) {
            System.err.println("Errore, immagine non trovata");
        }
        return result;
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);
        Dimension size = getSize();
        g.drawImage(background, 0, 0,size.width, size.height,0, 0, background.getWidth(), background.getHeight(), null);
    }
};
请注意,您不能在匿名类中使用构造函数,这不利于重用性


希望这有点帮助

我会查看java接口。这方面有什么消息吗