Я хотел бы выполнить действие после редактирования ячейки таблицы. Однако после того, как я использовал tablechanged
и напечатал исходную ячейку, произошла ошибка. Затем мне удалось обнаружить, что ошибка произошла из-за того, что e.source
не является экземпляром table
, а вместо этого DefaultTableModel
. Как получить выбранную строку и столбец ПОСЛЕ редактирования?
Вот Пример кода:
public static void main(String[] args) {
JFrame main = new JFrame();
JTable table = new JTable(6, 4);
table.setSize(300, 300);
table.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent e) {
Object s = e.getSource();
//JTable t = (JTable) s;
//int x = t.getSelectedRow();
//int y = t.getSelectedColumn();
//System.out.println("Cell at " + x + "," + y);
if (s instanceof JTable)
System.out.println("TABLE");
else
System.out.println("Not a table");
}
});
main.add(table);
main.setSize(300,300);
main.setLocationRelativeTo(null);
main.setVisible(true);
main.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
}