Mam JTable
w GUI i chcę zwrócić liczbę na podstawie wartości komórki, którą użytkownik kliknie. To jest kod:Jak określić, która komórka w JTable została wybrana?
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));
}
});
Mam z tym kilka problemów. Po pierwsze, ta metoda umożliwia edycję mojego stołu. Zanim użyłem tej metody, nie mogłem edytować tabeli, ale teraz mogę usuwać wpisy. Zajrzałem do API, ale nie wiem, dlaczego tak jest. Po drugie, jeśli kliknę komórkę w wierszu 3, powiedz, a następnie kliknę na inny wiersz w komórce 3, żadne zdarzenie nie zostanie zarejestrowane. Jak utworzyć zdarzenie po kliknięciu komórki w aktualnie wybranym wierszu?
Dodawanie ListSelectionListener nie będzie tabela edytowalne. Edytowalność komórki jest kontrolowana przez metodę isCellEditable (...) TableModel lub samą JTable. – camickr
możliwy duplikat [Jak mogę sprawdzić, która komórka JTable została kliknięta/wybrana?] (Http://stackoverflow.com/questions/4795586/how-can-i-check-which-jtable-cell-has-been- kliknięte-wybrane) – jlordo