Java 如何将映像动态更新到jlabel

Java 如何将映像动态更新到jlabel,java,image,swing,jlabel,Java,Image,Swing,Jlabel,我正在尝试创建一个简单的应用程序,它可以从web cam中获取图像并在jlabel中显示。但是我没有工作。我不明白原因。我的完整项目已上载到 我使用库来拍摄图像,下面的代码就是这样做的 // get default webcam and open it Webcam webcam = Webcam.getDefault(); webcam.open(); // get image BufferedImage image = webcam.getImage();

我正在尝试创建一个简单的应用程序,它可以从web cam中获取图像并在jlabel中显示。但是我没有工作。我不明白原因。我的完整项目已上载到 我使用库来拍摄图像,下面的代码就是这样做的

// get default webcam and open it
    Webcam webcam = Webcam.getDefault();
    webcam.open();

    // get image
    BufferedImage image = webcam.getImage();

    try {
        // save image to PNG file
        ImageIO.write(image, "PNG", new File("test.png"));
    } catch (IOException ex) {
        Logger.getLogger(TestFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
     webcam.close();
拍摄完图像后,我编写了以下代码将图像显示到jlabel

String path = "test.png";
imageLbl.setIcon(null);
imageLbl.setIcon(new ImageIcon(path));
imageLbl.revalidate();
imageLbl.repaint();
imageLbl.update(imageLbl.getGraphics());

如果已经有图像,则它将显示到jlabel。但最合理的拍摄图像并没有显示出来。这是很难解释的情况,我感谢如果你能下载和检查我的项目

您可以使用下面的代码将图像动态更新到jlabel

  String path = "test.png";
  imageLbl.setIcon(null);
    try {
      BufferedImage img=ImageIO.read(new File(path));
        imageLbl.setIcon(new ImageIcon(img));
        imageLbl.revalidate();
        imageLbl.repaint();
        imageLbl.update(imageLbl.getGraphics());
    } catch (IOException ex) {

    }

有错误吗?请尝试重新绘制()和重新验证()框架。@AnuragSharma
setIcon
是一个绑定字段,它应该自动更新您已经有了对图像的引用(
image
),为什么不简单地将其包装在
ImageIcon
中并应用到标签上<代码>imageLbl.setIcon(新的ImageIcon(图像))。我还假设
JLabel
已经添加到屏幕中,没有错误,并且程序正确编译@MadProgrammer。我使用这种方式是因为我想在以后的项目中动态更改路径,但是使用ImageIcon加载路径的表单有何不同?(是的,我更喜欢ImageIO,但基本上,你也在做同样的事情