public class ChartMouse extends ChartPane;
..........................
@Override
public void actionPerformed(ActionEvent e) {
super.actionPerformed(e);
String command = e.getActionCommand();
switch (command) {
case "ZOOM_RESET_BOTH":
resetBoth();
break;
case "ZOOM_RESET_DOMAIN":
resetDomain();
break;
case "ZOOM_RESET_RANGE":
resetRange();
break;
case "ZOOM_RANGE_BOTH":
zoomRangeBoth();
break;
case "ZOOM_IN_RANGE":
zoomInRange();
break;
case "ZOOM_IN_DOMAIN":
case "ZOOM_DOMAIN_BOTH":
zoomDomain();
break;
case "ZOOM_OUT_BOTH":
zoomOutBoth();
break;
}
}
在ChartPanel中actionPerformed运行完后,这个线程不会结束,我调试了一下,会进入EventDispatchThread这个类的这个方法中
void pumpEventsForFilter(int id, Conditional cond, EventFilter filter) {
addEventFilter(filter);
doDispatch = true;
while (doDispatch && !isInterrupted() && cond.evaluate()) {
pumpOneEventForFilters(id);
}
removeEventFilter(filter);
}
这就导致必须有其它事件才能终止这个actionPerformed,有没有什么解决办法?