Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何基于文本字段输入从JTable中删除行_Java_Swing_Netbeans_Jtable - Fatal编程技术网

Java 如何基于文本字段输入从JTable中删除行

Java 如何基于文本字段输入从JTable中删除行,java,swing,netbeans,jtable,Java,Swing,Netbeans,Jtable,我正在使用netbeans,在删除jTable中的一行时遇到问题。 我想使用文本字段和按钮删除数据。我尝试过类似的方法,但不起作用: private void btnDelActionPerformed(java.awt.event.ActionEvent evt) { String text2 = (String)jTextField2.getText(); DefaultTableModel model = (DefaultTableModel)jTable2.getModel(); if

我正在使用netbeans,在删除jTable中的一行时遇到问题。 我想使用文本字段和按钮删除数据。我尝试过类似的方法,但不起作用:

private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {
String text2 = (String)jTextField2.getText();
DefaultTableModel model = (DefaultTableModel)jTable2.getModel();
if (!text2.equals(model)){
do {
String [] row = {text2};
while(!text2.equals(model));
model.removeRow(WIDTH);
} 
}
 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   String text = (String)jTextField1.getText();
   DefaultTableModel model = (DefaultTableModel)jTable2.getModel();
   for (int i = 0; i < model.getRowCount(); i++)
     {
     for(int j = 0; j < model.getColumnCount(); j++) {
        model.setValueAt(text, i, j);
    }
  }    
我也试着让它像这样,但仍然不起作用:

private void btnDelActionPerformed(java.awt.event.ActionEvent evt) {
String text2 = (String)jTextField2.getText();
DefaultTableModel model = (DefaultTableModel)jTable2.getModel();
if (!text2.equals(model)){
do {
String [] row = {text2};
while(!text2.equals(model));
model.removeRow(WIDTH);
} 
}
 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
   String text = (String)jTextField1.getText();
   DefaultTableModel model = (DefaultTableModel)jTable2.getModel();
   for (int i = 0; i < model.getRowCount(); i++)
     {
     for(int j = 0; j < model.getColumnCount(); j++) {
        model.setValueAt(text, i, j);
    }
  }    
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt){
String text=(String)jTextField1.getText();
DefaultTableModel=(DefaultTableModel)jTable2.getModel();
对于(int i=0;i
有什么想法吗?请让我容易理解。 我真的是java的初学者,我不知道我是否使用了正确的代码。

假设您有这些数据

First Name        Last Name

  Lebron           James
  Michael          Jordan
  Kobe             Bryant
您要做的是在模型中循环,根据要检查的列,这将是传递给
getValueAt(row,column)

private void jButton1ActionPerformed(ActionEvent evt) {                                         
    String name = jTextField1.getText();

    DefaultTableModel model = (DefaultTableModel)jTable1.getModel();
    for (int i = 0; i < model.getRowCount(); i++) {
        if (((String)model.getValueAt(i, 0)).equals(name)) {
            model.removeRow(i);
            break;
        }
    }
} 
private void jButton1ActionPerformed(ActionEvent evt){
String name=jTextField1.getText();
DefaultTableModel=(DefaultTableModel)jTable1.getModel();
对于(int i=0;i
我对
getValueAt()
使用
0
,检查
First Name
列。如果名称等于,则删除该行

如果我键入
Lebron
,Lebron James
行将被删除。

while(Iwhile(i < tableModel.getRowCount()) {
    //if the value at (i, 0) match the specified value the row will be removed

if the row removed all row will move up and their index will be changed
so you have to add a condition if the value from the table doesn't match 
the specified value the iterator i will iterate by one to jump to the next 
row


if (((String)tableModel.getValueAt(i, 0)).equals(value)) {
    tableModel.removeRow(i);
}else {
    ++i;
}

}  
//如果(i,0)处的值与指定值匹配,则将删除该行 如果删除了该行,则所有行都将上移,其索引也将更改 因此,如果表中的值不匹配,则必须添加一个条件 指定的值将使迭代器按一进行迭代以跳到下一个 一行 if(((字符串)tableModel.getValueAt(i,0)).equals(value)){ tableModel.removeRow(i); }否则{ ++一,; } }
@Pragnesh Khalas。感谢您的编辑!