From 62988a7f4ffda7178923f307ff1f11cd1295a5cd Mon Sep 17 00:00:00 2001 From: ceikry Date: Mon, 2 Aug 2021 10:52:17 -0500 Subject: [PATCH] Can now select and delete multiple rows at once with the delete key --- src/main/kotlin/TableEditor.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/TableEditor.kt b/src/main/kotlin/TableEditor.kt index dbba370..293faaa 100644 --- a/src/main/kotlin/TableEditor.kt +++ b/src/main/kotlin/TableEditor.kt @@ -9,6 +9,7 @@ import java.awt.event.KeyListener import java.util.* import java.util.regex.PatternSyntaxException import javax.swing.* +import javax.swing.JComponent.WHEN_FOCUSED import javax.swing.event.TableModelEvent import javax.swing.event.TableModelListener import javax.swing.table.DefaultTableModel @@ -121,12 +122,16 @@ class TableEditor(val editor: Editors) : JFrame("Editing ${editor.name.replace(" } }) + table.getInputMap(WHEN_FOCUSED).put(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0), "delete") table.actionMap.put("delete",object : AbstractAction() { override fun actionPerformed(e: ActionEvent?) { try { - val table = e?.source as JTable - getData().removeAt(table.convertRowIndexToModel(table.selectedRow)) - model.removeRow(table.convertRowIndexToModel(table.selectedRow)) + for(i in 0 until table.selectedRowCount){ + val realRow = table.convertRowIndexToModel(table.selectedRows[0]) + getData().removeAt(realRow) + model.removeRow(realRow) + } + repaint() } catch(e: Exception){ Logger.logErr("Tried to remove nonexistent row ${table.selectedRow}") }