@Override public void run() { // System.out.println("update map now"); LinkedList<EdgeOp> backlist = new LinkedList<>(); PublicData pd = PublicData.getData(); int i; PosOp tmpPosOp; EdgeOp tmpEdgeOp; Pos tmpPos; for (i = 0; i < pd.posTask.size(); i++) { tmpPosOp = pd.posTask.get(i); if (tmpPosOp.op == 0) { // op==0 add a pos MapViewer.this.g.addVertex(new Integer(tmpPosOp.pos)); tmpPos = pd.agentsPos.get(tmpPosOp.pos); MapViewer.this.layout.setLocation(tmpPosOp.pos, tmpPos.getX(), tmpPos.getY()); } else { MapViewer.this.g.removeVertex(tmpPosOp.pos); } } for (i = 0; i < pd.edgeTask.size(); i++) { tmpEdgeOp = pd.edgeTask.get(i); if (tmpEdgeOp.op == 0) { // add a edge // int edgeNum=g.getEdgeCount(); MapViewer.this.g.addEdge(edgeCnt, tmpEdgeOp.start, tmpEdgeOp.end); backlist.add(new EdgeOp(1, edgeCnt, 0, pd.displayCnt)); edgeCnt++; } else { // remove if (tmpEdgeOp.delay <= 0) { g.removeEdge(tmpEdgeOp.start); } else { tmpEdgeOp.delay--; backlist.add(tmpEdgeOp); } } } pd.resetTask(); pd.edgeTask = backlist; vv.repaint(); // throw new UnsupportedOperationException("Not supported yet."); //To change body of // generated methods, choose Tools | Templates. }