我正在编写一个Java程序,其中有一个JFrame和一个Thread。一切都很好,唯独当我点击“X”按钮关闭程序时,程序本身关闭了(框架和它的资源被销毁),但是“javaw.exe”进程不会结束。我必须手动终止它。
我尝试了setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),甚至尝试了带有System.exit(0)的awt窗口监听器,但仍然没有成功。
还有什么想法可以帮忙解决吗?
这是我的代码。[需要在您的计算机上安装JavaCV]
我尝试了setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE),甚至尝试了带有System.exit(0)的awt窗口监听器,但仍然没有成功。
还有什么想法可以帮忙解决吗?
这是我的代码。[需要在您的计算机上安装JavaCV]
class MyGrabber implements Runnable {
final int INTERVAL = 1000;// /you may use interval
IplImage image;
CanvasFrame frame = new CanvasFrame("Web Cam");
public MyGrabber() {
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
FrameGrabber grabber = new OpenCVFrameGrabber(0); // 1 for next camera
int i = 0;
try {
grabber.start();
while (true) {
image = grabber.grab();
if (image != null) {
cvSaveImage("test.jpg", image);
// show image on window
frame.showImage(image);
}
Thread.sleep(INTERVAL);
}
} catch (InterruptedException e) {
e.printStackTrace();
} catch (com.googlecode.javacv.FrameGrabber.Exception e) {
e.printStackTrace();
}
}
}
public class TestGrabber {
public static void main(String[] args) {
MyGrabber gs = new MyGrabber();
Thread th = new Thread(gs);
th.start();
}
}
System.ext(...)
应该可以停止这些线程,所以我仍然感到困惑。 - Hovercraft Full Of Eels