왜 이것이 재귀하는지 잘 모르겠습니다.TableModelListener에 의한 StackOverflowError
jTable1.getModel().addTableModelListener(new TableModelListener() {
public void tableChanged(TableModelEvent evt) {
int sum = 0;
int i=0;
for (i =0 ; i<2; i++){
sum = sum + Integer.parseInt(jTable1.getValueAt(0, i).toString());
}
jTable1.setValueAt(sum, 0, 2);
}
});
예외이다 (그것은 반복 계속)
Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError
at javax.swing.table.DefaultTableColumnModel.getColumn(DefaultTableColumnModel.java:277)
at javax.swing.JTable.convertColumnIndexToModel(JTable.java:2553)
at javax.swing.JTable.getValueAt(JTable.java:2695)
at testprogram.guitest.TestTableModel$1.tableChanged(TestTableModel.java:63)
at javax.swing.table.AbstractTableModel.fireTableChanged(AbstractTableModel.java:280)
at javax.swing.table.AbstractTableModel.fireTableCellUpdated(AbstractTableModel.java:259)
at javax.swing.table.DefaultTableModel.setValueAt(DefaultTableModel.java:650)
at javax.swing.JTable.setValueAt(JTable.java:2719)
어떤 도움도 인정.
나는 이것이 오래되었다는 것을 알고 있지만 테이블의 setValueAt 메서드 또는 모델의 setValueAt 메서드가 사용되는지 여부에 관계없이 테이블 모델이 변경되므로이 문제를 해결하지 못한다는 것을 지적하고 싶습니다. @ jaime의 대답은 최소한 받아 들여진 대답이어야합니다. – mdscruggs