【发布时间】:2015-04-23 04:52:36
【问题描述】:
我已经编写了一个程序来从网络摄像头(通过 OpenCV)拍摄快照并将其保存到项目中:
Colordetection
|__src
| |
| main.java
|
| Snapshot.png
现在我想刷新拍摄的快照,每次我重新拍摄并重新绘制它。
String imgText = "Snapshot.png";
JPanel panelScreenshot = new JPanel();
panelScreenshot.setBorder(new TitledBorder(null, "Screenshot", TitledBorder.LEADING, TitledBorder.TOP, null, null));
panelScreenshot.setBounds(10, 11, 667, 543);
panelDisplay.add(panelScreenshot);
panelScreenshot.setLayout(null);
JLabel lblScreenshot = new JLabel();
lblScreenshot.setIcon(new ImageIcon(imgText));
lblScreenshot.setBounds(10, 21, 640, 480);
panelScreenshot.add(lblScreenshot);
JButton btnScreenshot = new JButton("Screenshot");
btnScreenshot.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
VideoCapture cap = new VideoCapture(0);
if(!cap.isOpened()){
System.out.println("Webcam not Found");
}
else
{
System.out.println("Found Webcam:" + cap.toString());
Mat frame = new Mat();
cap.retrieve(frame);
try {
Thread.sleep(500);
Highgui.imwrite("Snapshot.png", frame);
lblScreenshot.repaint();
}
catch (Exception e1) {
e1.printStackTrace();
}
cap.release();
}
}
});
问题是,它不会像我想要的那样重新绘制/刷新,只有当我重新启动程序时,新的屏幕截图才会出现。
我也试过了:
ImageIcon icon = new ImageIcon(main.class.getResource("Snapshot.png"));
并更改了路径等,但没有帮助。
有人知道吗?
谢谢。
【问题讨论】:
标签: java image swing refresh repaint