java – JPanel背景图片

这是我的代码,它确实找到了图像,这不是我的关注,我关心的是如何使该图像成为面板的背景.我正在尝试使用图形,但我不工作,任何想法?请??

try {
            java.net.URL imgURL = MAINWINDOW.class.getResource(imagen);

            Image imgFondo = javax.imageio.ImageIO.read(imgURL);
            if (imgFondo != null) {
                Graphics grafica=null;
                grafica.drawImage(imgFondo, 0, 0, this);
                panel.paintComponents(grafica);
            } else {
            System.err.println("Couldn't find file: " + imagen);
            }

        } catch...
您的代码中存在错误.在取消引用之前,将grafica设置为空行.这肯定会抛出NullPointerException.您应该使用传入您将用于绘制的方法的对象,而不是声明自己的Graphics对象.要在Swing中执行此操作,您应该实现paintComponent方法来绘制图像,如下所示:

  public void paintComponent(Graphics grafica) {
     grafica.drawImage(imgFondo, 0, 0, this); 
  }

请注意,您不希望执行长时间运行的任务,例如在绘图线程中从磁盘读取图像文件.上面的示例假设您已经加载了imgFondo并将其存储,以便可以在paintComponent方法中访问它.

https://stackoverflow.com/questions/2937403/jpanel-background-image

转载注明原文:java – JPanel背景图片