Java 如何基于文本字段输入从JTable中删除行
我正在使用netbeans,在删除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
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。感谢您的编辑!