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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top