PDA

View Full Version : [JAVA] Evento particolare su due jtable


serpico84
13-10-2009, 14:30
Ho 2 jtable contenenti dei dati, le cui righe rappresentano informazioni per la stessa persona. Vorrei che quando clicco su una riga (ad esempio la seconda) della jtable1 mi si evidenziasse anche la stessa riga della jtable2 e viceversa.....E' possibile??:mc:

PGI-Bis
13-10-2009, 15:14
Sì. Quello che fai è metterti in ascolto per gli eventi di selezione generati dalla prima tabella in modo tale da sapere quanto selezioni un riga. A quel punto vai a selezionare la corrispondente riga dell'altra tabella. Quale sia la riga corrispondente dipende ovviamente dalla struttura delle due tabelle. Probabilmente dovrai andare a cercare nella seconda tabella la riga avente come valore in una determinata cella un certo identificatore.

Per catturare gli eventi di selezione di una JTable table:

table.getSelectionModel().addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
if(!e.geValueIsAdjusting()) {
int rigaSelezionata = e.getFirstIndex();
//e qui vai a cercare il corrispondente di questa riga nell'altra tabella
}
}
});

Per selezionare una riga in una JTable table:

table.setSelectionModel().setSelectionRange(riga, riga);

serpico84
13-10-2009, 21:54
grazie perchè sei riuscito ad ispirare la soluzione che ho trovato che è leggermente diversa (e più corta!). Io utilizzo netbeans+interfaccia swing quindi ho utilizzato l'evento mouse clicked della tabella ed al suo interno ho messo:


private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {
int riga=jTable1.getSelectedRow();
jTable2.setRowSelectionInterval(riga, riga);
}

PGI-Bis
13-10-2009, 22:10
La accendiamo? :D