使用 AbstractTableModel 从 JTable 中删除行

The*_*oy0 3 java user-interface swing jtable abstracttablemodel

我想从删除选定的行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()); 

                 }
         }
     }
Run Code Online (Sandbox Code Playgroud)

但它不适用于AbstractTablemodel.

我的代码有点乱,所以这里是可以使用的 oracle 页面的java 示例

谢谢!

tra*_*god 5

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

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

  • *我发现了更相关的提示*我们的魔法水晶球可能没有表明您使用数组作为内部数据结构。+1 这个答案是关于问题中可用信息的最佳答案 (2认同)