首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从jtable中删除行

问从jtable中删除行
EN

Stack Overflow用户
提问于 2014-12-11 14:43:48
回答 2查看 9K关注 0票数 3

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

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

代码语言:javascript
复制
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中删除该行,而不是从数据库中删除该行。

代码语言:javascript
复制
 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();
        }

    }
} 
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-11 14:57:59

在这一行:

代码语言:javascript
复制
jTable1.remove(selectedRow);

这个删除(int索引)方法不像你想的那样。它是从容器类继承的,用于从给定容器中删除组件。

相反,您需要使用TableModel并从其中移除选定的行。由于您使用的是马蒂斯 (NetBeans‘GUI ),那么附加到表上的表模型将是DefaultTableModel的一个实例,因此您可以这样做:

代码语言:javascript
复制
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);
    }
}

请看一看:

票数 5
EN

Stack Overflow用户

发布于 2016-12-16 17:36:48

与JTableBinding一起工作:

代码语言:javascript
复制
private JTableBinding<LpDetail, LpMaster, JTable> lpDetailListTableBinding;

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

代码语言:javascript
复制
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);                       
        }

    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27425476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档