je suis entrain de réaliser un éditeur de graphes à l'aide de la bibliothèque JGraph et je doit avoir comme l'une des fonctionnalités supprimer les nœuds t les arcs j'ai pu implémenter ceci mais le problème c'est qu'est demandé de supprimer tout les arcs liés au nœuds sélectionné pour le supprimer

voila mon code pour la suppression
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class supprimeAction implements ActionListener{
		 public void actionPerformed(ActionEvent e){
			 //supression du graph
			 final int i =onglet.getSelectedIndex();			 
			 Object[] t=myGraphs.get(i).selection;
			 //t = myGraphs.get(i).getGraph().getDescendants(t);
			 if( myGraphs.get(i).whatIs.equals("Une cellule ou groupe")){
		 for (Object obj : t)
		 {
		 if (obj == null)
		 continue;
 
		 String key = ((DefaultGraphCell) obj).getUserObject().toString();
		 myGraphs.get(i).liste.supprimer(key);
		 myGraphs.get(i).getGraph().getGraphLayoutCache().remove(new Object[] { obj });
 
 
 
 
		 }}
		if(myGraphs.get(i).whatIs.equals("Un Lien")){ 
		 myGraphs.get(i).getGraph().getGraphLayoutCache().remove(t);
 
 
 
					 }
 
		 }
		 }
pour la variable whatIs c'est une variable de ma classe graphe qui permet de determiner le type de l'objet selectione je l'ai implementer dans un GraphSelectionListener voilà son code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
graph.addGraphSelectionListener(new GraphSelectionListener() {
	    	   public void valueChanged(GraphSelectionEvent C) {
	    	       selection = graph.getSelectionCells();
 
	    	   for (int i = 0; i < selection.length; i++) {
	    	   if (selection[i] instanceof DefaultEdge) {
	    	   whatIs="Un Lien";
	    	   System.out.println("lien");
 
	    	   } else if (selection[i] instanceof DefaultGraphCell)
	    	   {
	    	   whatIs="Une cellule ou groupe";
	    	   System.out.println("cellule");
 
 
	    	   }
	    	   }}});
merci d'avance