Я пишу эту Java-программу, в которой у меня есть JFrame и Thread. Все идет нормально, за исключением того, что когда я нажимаю кнопку «X», чтобы закрыть программу, сама программа закрывается (фрейм и его ресурсы уничтожаются), но процесс «javaw.exe» не заканчивается. Я должен завершить это вручную все время.
Я пробовал, конечно, setDefaultCloseOperation(JFrame.*EXIT_ON_CLOSE*) , я даже пробовал прослушиватель окна awt с System.exit(0) в нем, но все равно безуспешно.
Любые идеи, чтобы помочь?
Это мой код. [На вашем компьютере должен быть установлен 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(...)
должен остановить даже их, и поэтому я остаюсь в замешательстве, как всегда. - person Hovercraft Full Of Eels   schedule 09.06.2012