Noble-Surfer
Noble-Surfer

Reputation: 3172

Java DefaultTableModel- how do I remove the selected row?

I have a table displayed in my Java GUI, which the user can add rows to by clicking an 'Add' button. The cells in the row that is added to the table are all editable by default, and the user can select each row/ cell as they wish.

I now want to add the functionality to remove a row from the table, but I can't seem to find the correct way to do this with a DefaultTableModel data type.

I have added the following code to the action listener for my 'remove row' button:

removeBtn.addActionListener(new ActionListener(){
    public void removeRow(){
        DefaultTableModel model = (DefaultTableModel)jEntityFilterTable.getModel();
        model.removeRow();
    }
});

However, the removeRow() method requires a parameter of type int (the index number of the row I want to remove). How can I get the 'selected row' from the DefaultTableModel? There doesn't appear to be a method that allows you to do this...

Upvotes: 0

Views: 1444

Answers (1)

sina72
sina72

Reputation: 5101

You can obtain the index from the table.

removeBtn.addActionListener(new ActionListener(){
    public void removeRow(){
    int selRow = jEntityFilterTable.getSelectedRow();
    if(selRow != -1) {
        DefaultTableModel model = (DefaultTableModel)jEntityFilterTable.getModel();
        model.removeRow(selRow);
    }
}

});

Upvotes: 1

Related Questions