Ho un JTable
in una GUI e voglio restituire un numero basato sul valore della cella su cui un utente fa clic. Questo è il codice:Come posso determinare quale cella di una tabella è stata selezionata?
ListSelectionModel newmodel = mytable.getSelectionModel();
newmodel.addListSelectionListener(new ListSelectionListener() {
@Override
public void valueChanged(ListSelectionEvent e) {
int row = mytable.getSelectedRow();
int column = mytable.getSelectedColumn();
int cell = getNewNum();
datefield.setText(String.valueOf(cell));
}
});
Ho un paio di problemi con questo. In primo luogo questo metodo rende la mia tabella modificabile. Prima che usassi questo metodo non potevo modificare la tabella ma ora posso cancellare le voci. Ho guardato nell'API ma non so perché sia così. In secondo luogo, se clicco su una cella nella riga 3, dì, e poi clicco su un'altra riga nella cella 3, nessun evento è registrato. Come posso fare in modo che un evento faccia clic in una cella sulla riga attualmente selezionata?
L'aggiunta di un ListSelectionListener non renderà il vostro tavolo modificabile. La modificabilità di una cella è controllata dal metodo isCellEditable (...) di TableModel o di JTable stesso. – camickr
possibile duplicato di [Come posso verificare quale cella JTable è stata selezionata/selezionata?] (Http://stackoverflow.com/questions/4795586/how-can-i-check-which-jtable-cell-has-been- cliccato-selezionato) – jlordo