에서 사용자 정의 DeleteCellEditor가있는 셀을 클릭하여 JTable 행 제거 HistoryPanel
클래스에서 tableModel
이라는 정적 DefaultTableModel을 사용하는 resultsTable
이라는 정적 JTable이 있습니다.같은 JTable
resultsTable.getColumn("Delete").setCellEditor(new DeleteButtonEditor(new JCheckBox()));
내부, 당연히, 나는 다음과 같은 두 가지 메소드를 오버라이드 (override) : 테이블은 사용자 정의 셀 편집기를 가지고
public Object getCellEditorValue()
{
if (isPushed)
{
HistoryPanel.tableModel.removeRow(HistoryPanel.resultsTable.getSelectedRow());
}
}
protected void fireEditingStopped()
{
super.fireEditingStopped();
}
난의 마지막 행을 제거하려고 할 때 예외 만 발생되고있다 resultsTable. 마지막 행이 아닌 행을 제거하면 완벽하게 작동합니다.
Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1
그리고 예외가 발생합니다 코드 줄은 다음과 같습니다 : 예외입니다
는super.fireEditingStopped();
은 누구도 날 도와 드릴까요? 이 예외를 어떻게 피할 수 있습니까?
감사합니다! 매력처럼 작동합니다! –
@HristoValchevHristov는 [답변 수락] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)을 고려하여 다른 사람들이이 질문을 해결할 수 있도록합니다. – Robin