Sono in questa condizione, ho creato una classe EliminatoreOntologie a cui passo il riferimento di una Jlist e del ModelList ad essa associato; all'interno della classe creo un'ascoltatore per vedere dov'è il mouse quendo clikko 2 volte e cancellare il termine che seleziono.
Il Problema: se instanzio più volte la classe EliminatoreOntologie in esso si sovrappongono più volte gli ascoltatori (che la garbage collector non fa in tempo ad eliminare) e quindi mi viene eseguito più volte la procedura di cancellazione ... come di fa a far chiudere l'oggetto e forzarlo a finalizzarsi?
codice:
public class EliminatoreOntologie {
DefaultListModel listModel;
JList jListOntologie;
/** Creates a new instance of EliminatoreOntologie */
public EliminatoreOntologie(JList JlistaOnt, DefaultListModel lm) {
jListOntologie=JlistaOnt;
listModel=lm;
//JFormPrincipale=JFormPri;
}
public void EliminaSingOntologia() {
jListOntologie.setEnabled(true);
MouseListener mouseListenerList = new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
//Controllo se la lista è vuota
if (listModel.getSize()>0) {
int index = jListOntologie.locationToIndex(e.getPoint());
listModel.removeElementAt(index);
jListOntologie.setEnabled(false);
}
}
}
};
jListOntologie.addMouseListener(mouseListenerList);
}
}
So che ci sono comandi per eliminare l'ascoltatore come removeMouseListener(..)
ma non riesco ad inserirlo all'interno del codice ....