[英]remove row from jtable
我想以擺動形式從jtable中刪除一行
Jtable >>自動從Netbeans搖擺(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();
}
}
}
在這一行:
jTable1.remove(selectedRow);
這個remove(int index)方法沒有按照你的想法做到。 它繼承自Container類,旨在從給定容器中刪除組件。
而不是你需要使用TableModel並從中刪除選定的行。 由於您使用的是matisse (NetBeans的GUI Builder),因此附加到表的表模型將是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);
}
}
請看看:
使用JTableBinding:
private JTableBinding<LpDetail, LpMaster, JTable> lpDetailListTableBinding;
你可以直接在pojos上執行此操作:
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);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.