我想使用按钮从带有JTableAbstractTableModel中删除选定的行。

下面的代码与DefaultTableModel一起使用:

...
MyTableModel mtb;
...
private String[]....
private Object[][]...
...
JTable table = new JTable(mtb)
JButton delete;
...
 public void actionPerformed(ActionEvent e) {

        if(e.getSource().equals(delete))
         {
                 if(table.getSelectedRow()<0)
                 {
                  JOptionPane.showMessageDialog(this,"Select row");

                 }
                 else
                 {
                     mtb.removeRow(table.getSelectedRow());

                 }
         }
     }

但它不适用于AbstractTablemodel

我的代码有些混乱,因此可以使用来自Oracle页面的java example:

谢谢!

最佳答案

对于AbstractTableModel,您必须基于模型的内部数据结构来实现自己的removeRow(),但是您可以研究DefaultTableModel的来源以作为触发哪个事件的指南。例如,

public void removeRow(int row) {
    // remove a row from your internal data structure
    fireTableRowsDeleted(row, row);
}

09-29 20:04