【问题标题】:remove row from jtable从 jtable 中删除行
【发布时间】:2014-12-11 14:43:48
【问题描述】:

我想以 swing 形式从 jtable 中删除一行

Jtable >> 从 Netbeans swing (Netbeans 8) 中自动拖动

private javax.persistence.EntityManager entityManager;
private javax.swing.JButton jButton1;
private javax.swing.JButton jButton2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable jTable1;
private java.util.List<javaapplication1.Orders> ordersList;
private javax.persistence.Query ordersQuery;
private org.jdesktop.beansbinding.BindingGroup bindingGroup;

Jtable 数据 >> 自动绑定 MySQL 数据库

我只想从 jtable 中删除行,而不是从数据库中删除

 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
    // TODO add your handling code here:

    int selectedRow =  jTable1.getSelectedRow();
    if(selectedRow!=-1)
    {
        try {
            jTable1.remove(selectedRow);
            jTable1.revalidate();
        } catch (Exception e) {
            e.getMessage();
        }

    }
} 

【问题讨论】:

标签: java swing netbeans jtable matisse


【解决方案1】:

在这一行:

jTable1.remove(selectedRow);

这个remove(int index) 方法并没有像你想象的那样做。它继承自 Container 类,旨在从给定容器中删除组件。

您需要使用TableModel 并从中删除选定的行。由于您使用的是(NetBeans 的 GUI 构建器),那么附加到您的表的表模型将是 DefaultTableModel 的一个实例,因此您可以执行以下操作:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    int viewIndex = jTable1.getSelectedRow();
    if(viewIndex != -1) {
        int modelIndex = jTable1.convertRowIndexToModel(viewIndex); // converts the row index in the view to the appropriate index in the model
        DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
        model.removeRow(modelIndex);
    }
}

请查看:

【讨论】:

  • 现在我添加 jtable1.setModel(new (DefaultTableModel));但是当我尝试循环播放时,他说:模型是空的
【解决方案2】:

使用 JTableBinding:

private JTableBinding<LpDetail, LpMaster, JTable> lpDetailListTableBinding;

您可以直接在 pojo 上执行此操作:

protected void btnEliminarItemActionPerformed(ActionEvent e) {

        int sustract = tb_DetLP.getSelectedRow();

        if (sustract >= 0) {
            selectedItem.setLpDetailList(org.jdesktop.observablecollections.ObservableCollections
                    .observableList(selectedItem.getLpDetailList()));
            selectedItem.getLpDetalleList().remove(sustract);                       
        }

    }

【讨论】:

    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 2014-10-09
    • 2014-08-28
    • 2011-12-22
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 2013-03-07
    相关资源
    最近更新 更多