Sì, sugli indici ovviamente. I metodi di traslazione offerti da JTable servono in alcune precise circostanze (non sto a fare esempi adesso). Però nel tuo caso non è detto che servono.
Nota che nel tuo codice hai usato getValueAt sul table model (quindi riga/colonna sono nel "model") e poi hai usato quella riga per setRowSelectionInterval di JTable, che ovviamente è nella "view".
È questo che può portare a discrepanze. Se un valore lo trovi alla riga 10 nel model ..... se c'è un ordinamento sulla tabella, non è detto che si trovi fisicamente sulla riga 10 nella vista in JTable!
La soluzione è semplice e non implica necessariamente l'uso esplicito dei metodi di traslazione: semplicemente usa getRowCount / getColumnCount / getValueAt di JTable.
Beh no dai ... non era quello l'obiettivo!
Il punto è che serve avere ben chiari i principi della OOP e magari anche alcuni dei più noti e comuni design pattern. Tanto per dirne una, se la funzionalità di ricerca nella tabella è da fare su più tabelle distinte, magari presenti in pannelli/finestre differenti, a me già verrebbe in mente di estendere JTable e incapsulare lì dentro la logica di ricerca.



Rispondi quotando
