imgpanel.setImage(im);在按下按钮的功能下循环不起作用,但在一次操作中效果良好



此循环在Main函数中运行良好,但当在按下按钮的操作下复制此循环代码时,它不工作。它只在最后一次迭代时显示图像,否则显示空白。

public void buttonPressed() {
    BufferedImage im = null;
    try {
        Thread.sleep(3000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    int j=100;
    for(int i=0;i<j;i++) {
        im = camera.captureImage();
        tracker.setImage(im);
        if (previous.x == -1) {
            // previous = tracker.searchCorrelation();
            previous = tracker.trackMarker();
        } else {
            // previous =tracker.searchCorrelation(previous);
            previous = tracker.sayemSearch(previous);
        }
        if (previous.x != -1) {
            System.out.println("prevX" + previous.x + "prevY" + previous.y);
            im = trackedImage(im, previous);
        }
        System.out.println("prevX" + previous.x);
        // System.out.println("prevY"+previous.y);
        imgpanel.setImage(im);
        System.out.println("set");
        //break;//When i write break then it works
    }
}

您正在阻塞事件线程,因此不需要重新绘制。如果要显示每个图像,则必须手动调用面板上的repaint()或每个setImage之后的帧。

最新更新