Bas*_*wab 3 java swing netbeans jtable matisse
我想以 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;
Run Code Online (Sandbox Code Playgroud)
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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
在这一行:
jTable1.remove(selectedRow);
Run Code Online (Sandbox Code Playgroud)
这个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);
}
}
Run Code Online (Sandbox Code Playgroud)
请查看:
归档时间: |
|
查看次数: |
9169 次 |
最近记录: |