我暂时不是很能整理好自己的思路,大致是这样的:
我希望我的主线程(swing线程)阻塞,然后等待某个事件的发生然后被唤醒。
例如我有一段代码是这样写的:
.....
                         final Object lock = new Object();  
              svgCanvas.addSVGDocumentLoaderListener(new
                          SVGDocumentLoaderAdapter() {
                          public void documentLoadingCompleted(
                              SVGDocumentLoaderEvent
                              e) {
                                   lock.notifyAll();
                          }
                      });
              File file = new File("filter.svg"); 
              svgCanvas.loadSVGDocument(file.toURL().toString());
                              
             
             lock.wait();
..............
在我的loadSVGDocument执行完以后若干秒内,documentLoadingCompleted的相应事件应当会被触发,但是事实上我的主线程就永远诸塞在这里了。我换了Thread.sleep,但是在线程休眠的过程中,我同样无法触发事件。是不是wait了以后,线程也会无法接受任何事件呢?请各位回答我的问题,描述不清,见笑了:)