Ciao
Premessa : 
Ho una JTable che rappresenta una TreeSet contenente Oggetti di tipo Articolo.
In ogni cella c'è una stringa che rappresenta un campo dell'oggetto Articolo.
Ogni riga della JTable rappresenta L'Articolo , ogni colonna il relativo campo (Tipologia , Marca , Modello ecc...).
Ho implementato codice per evidenziare un elemento dopo aver fatto una ricerca.
La ricerca consiste nello scrivere qualcosa in un JTextField per poi cercarlo premendo un tasto "Cerca". Il risultato sarà poi visualizzato sulla JTable attraverso la selezione automatica della riga relativa alla stringa cercata.
Il Problema è che non sempre funziona ; Non funziona se ordino la JTable cioè se clicco sul titolo di una colonna per ordinarla. Se non faccio l'ordinamento funziona.
Vi Posto il codice :
Il Metodo che fa la ricerca nella TreeSet è corretto ho controllato.
codice:
public int cercaArticolo(String testo){
int risultato = -1;
String tipologia = "" , marca = "" , modello = "" , quantità = "" , prezzo = "" , codice = "";
Iterator<Articolo> it = treeset.iterator();
while(it.hasNext()){
Articolo art = it.next();
tipologia = art.getTipologia();
marca = art.getMarcaTipologia();
modello = art.getModelloTipologia();
quantità = String.valueOf(art.getQuantitàArticolo());
prezzo = String.valueOf(art.getPrezzo());
codice = String.valueOf(art.getCodiceArticolo());
if(testo.equals(tipologia)||testo.equals(marca)||testo.equals(modello)||testo.equals(quantità)||testo.equals(prezzo)||testo.equals(codice)){
risultato = art.getCodiceArticolo();
break;
}
}
return risultato;
}// CERCA ARTICOLO
Penso sia sbagliato qualcosa nell'ascoltatore del bottone cerca (Vi posto solo l'action performed)
codice:
public void actionPerformed(ActionEvent e){
String elementoDaCercare = new String(InterfacciaPrincipale.campoRicerca.getText());
int risultato = InterfacciaPrincipale.Magazzino.cercaArticolo(elementoDaCercare);
if(risultato == -1)
new NotificaNessunArticoloPresente();
else{
for(int row = 0 ; row <= InterfacciaPrincipale.modelloJTable.getRowCount() - 1; row++){
for(int col = 0 ; col <= InterfacciaPrincipale.modelloJTable.getColumnCount() -1 ; col++){
if(elementoDaCercare.equals(InterfacciaPrincipale.modelloJTable.getValueAt(row, col)))
InterfacciaPrincipale.Jtable.setRowSelectionInterval(row, row);
}//FOR 2
}//FOR 1
}// ELSE
}// ACTION PERFORMED