我想从扫描仪获取图像,并将它们放入HashMap中,这些图像的名称由名为ScanningService的SwingWorker类按照特定的顺序执行。我希望在使用同一设备完成第一个图像之后,使用for循环获取另一个图像。完成后,scan.getImage()将返回扫描的图像。sc参数是一个扫描仪对象。也许有人可以为我提供一个带有Executor或Timer的实现,因为我的试验没有取得任何成果。
for(int k=0; k<10; k++){
lblMessage.setText("Scan Next Image: ");
scan = new ScanningService(sc);
scan.execute();
scan.addPropertyChangeListener(new PropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent arg0) {
// TODO Auto-generated method stub
if(StateValue.DONE == scan.getState()){
lblImagePreview.setIcon(new ImageIcon(scan.getImage()));
//logic for name in order of sequence
imageList.put<imagename, scan.getImage());
}
}
});
}发布于 2012-09-26 17:46:32
Runnable#Thread,输出到Swing图形用户界面必须在invokeLater() EventDispatchThread上完成,您必须在invokeLater()中查看Concurency in Swinghttps://stackoverflow.com/questions/12598512
复制相似问题