Java добавить/удалить строку в JTable?

Я пытаюсь понять, как добавлять и удалять строки из JTabel. Я хочу удалить строки на основе первого столбца, который является уникальным идентификатором.

В настоящее время я создаю свою таблицу следующим образом:

       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);

Как я могу добавить новую строку и удалить строку с идентификатором # 867954?


person Alosyius    schedule 04.09.2013    source источник
comment
программно или на основе или с входным событием? Во всех случаях вам придется иметь дело с jtable.getModel()   -  person nachokk    schedule 04.09.2013


Ответы (1)


Вы можете сделать это, если используете DefaultTableModel:

DefaultTableModel dtm = new DefaultTableModel(products, colName);
table = new JTable(dtm);

Теперь вы можете добавлять и удалять строки:

dtm.removeRow(0); //remove first row
dtm.addRow(new Object[]{...});//add row

Если вы хотите удалить строку на основе идентификатора, вы можете найти строку с этим идентификатором и затем удалить ее:

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
person Jimmy T.    schedule 04.09.2013
comment
Как удалить строку на основе идентификатора в столбце 1? - person Alosyius; 04.09.2013
comment
Работает отлично! Благодаря тонну!! - person Alosyius; 04.09.2013