Java Jtable SelectionListener
-
13-11-2019 - |
Domanda
ne ho due Jtables pieno di dati su un JPanel. Un utente sta cercando di eliminare una riga da una delle tabelle selezionando la riga e facendo clic sul pulsante "Elimina". Il problema per me è come capire quale dei due Jtables era focalizzato l'ultimo (l'utente poteva fare clic sulla riga nella Tabella 1, quindi sulla riga nella Tabella 2, quindi "Elimina" e voglio eliminare la riga dalla Tabella 2). Lo vedrei forse in questo modo:
Le tabelle hanno aggiunto ListSelectionListener Quell'evento di fuoco valutato, quando una riga è selezionata, ma ora devo in qualche modo avvisare il componente che contiene quelle due tabelle che sono state selezionate l'ultima
Qualcuno sa come posso risolverlo? E per favore se potessi fornire un codice di esempio, sarebbe molto apprezzato.
Soluzione
Puoi utilizzare il metodo "getsource" dell'evento che stai ricevendo per capire quale tabella ha generato l'evento. Per esempio,
public void valueChanged(ListSelectionEvent e) {
if (e.getSource() == jTable1.getSelectionModel()) {
System.out.println("Event occurred in table 1");
} else if (e.getSource() == jTable2.getSelectionModel()) {
System.out.println("Event occurred in for table 2");
}
}
Altri suggerimenti
Registra Focus FocusListener su entrambe le tabelle Per tenere traccia di quale tabella era focalizzata per ultimo.
Maggiori informazioni possono essere trovate su http://docs.oracle.com/javase/tutorial/uiswing/events/focuslistener.html