Ik krijg een ArrayIndexOutOfBoundsException voor de row die ik wil verwijderen + 1.
Als ik bijvoorbeeld row nummer 4 verwijder, krijg ik een ArrayIndexOutOfBoundsException: 5 >= 5.
Echter, ik krijg niet altijd die error. Bij het verwijderen van de laatste row krijg ik nooit een error, maar bij het verwijderen van rows in het midden krijg ik vaak een error.
Dit is me code:
De error:
Als ik bijvoorbeeld row nummer 4 verwijder, krijg ik een ArrayIndexOutOfBoundsException: 5 >= 5.
Echter, ik krijg niet altijd die error. Bij het verwijderen van de laatste row krijg ik nooit een error, maar bij het verwijderen van rows in het midden krijg ik vaak een error.
Dit is me code:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| JComboBox actionComboBox = new JComboBox(); JTable jTable = new JTable(); DefaultTableModel tableModel = new DefaultTableModel(); actionComboBox.addItem("Delete"); tableModel.addColumn("Kolom 1"); tableModel.addColumn("Kolom 2"); jTable.setModel(tableModel); TableColumn actionColumn = jTable.getColumnModel().getColumn(1); actionColumn.setCellEditor(new DefaultCellEditor(actionComboBox)); actionColumn.setCellRenderer(new DefaultTableCellRenderer() { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { tableModel.removeRow(row); } return this; } }); actionComboBox.setRenderer(new DefaultListCellRenderer() { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value instanceof String) { setText((String)value); } return this; } }); |
De error: