I am trying to figure out how to add and remove rows from a JTabel. I want to remove rows based on the first column which is a unique ID.
我正在尝试找出如何从JTabel中添加和删除行。我想基于第一列删除行,第一列是唯一的ID。
I am currently creating my table like this:
我目前正在创建这样的表:
String[] colName = new String[] {
"ID#", "Country", "Name", "Page titel", "Page URL", "Time"
};
Object[][] products = new Object[][] {
{
"867954", "USA", "Todd", "Start", "http://www.url.com", "00:04:13"
}, {
"522532", "USA", "Bob", "Start", "http://www.url.com", "00:04:29"
}, {
"4213532", "USA", "Bill", "Start", "http://www.url.com", "00:04:25"
}, {
"5135132", "USA", "Mary", "Start", "http://www.url.com", "00:06:23"
}
};
table = new JTable(products, colName);
How could i add a new row and delete the row with ID # 867954
?
如何添加一个新的行并删除ID # 867954的行?
1 个解决方案
#1
9
You can do it if you use DefaultTableModel
:
如果使用DefaultTableModel,您可以这样做:
DefaultTableModel dtm = new DefaultTableModel(products, colName);
table = new JTable(dtm);
Now you can add and remove rows:
现在可以添加和删除行:
dtm.removeRow(0); //remove first row
dtm.addRow(new Object[]{...});//add row
If you want to delete a row based on the ID, you can search for row with that ID and remove it then:
如果您想基于ID删除一行,您可以使用该ID搜索该行,然后删除它:
String searchedId = "867954";//ID of the product to remove from the table
int row = -1;//index of row or -1 if not found
//search for the row based on the ID in the first column
for(int i=0;i<dtm.getRowCount();++i)
if(dtm.getValueAt(i, 0).equals(searchedId))
{
row = i;
break;
}
if(row != -1)
dtm.removeRow(row);//remove row
else
...//not found
#1
9
You can do it if you use DefaultTableModel
:
如果使用DefaultTableModel,您可以这样做:
DefaultTableModel dtm = new DefaultTableModel(products, colName);
table = new JTable(dtm);
Now you can add and remove rows:
现在可以添加和删除行:
dtm.removeRow(0); //remove first row
dtm.addRow(new Object[]{...});//add row
If you want to delete a row based on the ID, you can search for row with that ID and remove it then:
如果您想基于ID删除一行,您可以使用该ID搜索该行,然后删除它:
String searchedId = "867954";//ID of the product to remove from the table
int row = -1;//index of row or -1 if not found
//search for the row based on the ID in the first column
for(int i=0;i<dtm.getRowCount();++i)
if(dtm.getValueAt(i, 0).equals(searchedId))
{
row = i;
break;
}
if(row != -1)
dtm.removeRow(row);//remove row
else
...//not found