JTable wyczyszczenie

0

Witam
Jak zrobić aby wyczyściło mi wszystkie rekordy w JTable?
Pozdrawiam

0

Zależy od tego jak wygląda metoda getValueAt().
Jeśli wygląda tak:

public Object getValueAt(int wiersz,int kolumna)
{
    JakisTyp w=dane.get(wiersz); // dane są polem w modelu, jakąś kolekcją
    switch(kolumna)
    {
        case 0:
             return w.coś;
        case 1:
             return w.coś_innego:
       ......
    }
}

to wystarczy coś takiego

model.dane.clear(); //jeśli dane są typu Vector
model.fireTableDataChanged():

Jeśli metoda getValueAt() wygląda tak:

public Object getValueAt(int wiersz,int kolumna)
{
    return new Integer(wiersz*kolumna);
}

to musisz podmienić model na "pusty"

tabela.setModel(nowyModel);
nowyModel.fireTableDataChanged():
0

nie prościej:
int ileRows = aModel.getRowCount();
if(ileRows >0){
for(int i=ileRows-1;i>=0;i--) aModel.removeRow(i);
}

przy założeniu że do tabeli jest dodany model:
`DefaultTableModel aModel = null;`
0

Wystarczy:

model.setRowCount(0);
0

__Krzysiek85 napisał

Wystarczy: model.setRowCount(0);
Metoda setRowCount() jest dostępna tylko dla DefaultTableModel (dane są w postaci obiektu typu Vector). Podany sposób ma zatem bardzo małe zastosowanie.
opałek napisał
nie prościej:

int ileRows = aModel.getRowCount();
if(ileRows >0){
for(int i=ileRows-1;i>=0;i--) aModel.removeRow(i);
}

Ta sama uwaga co wyżej: metoda setRowCount() jest dostępna tylko w DefaultTableModel.
W ogólniejszej klasie AbstractTableModel tych metod nie ma</u>.

0

Uniwersalna metoda jest taka:

import javax.swing.table.AbstractTableModel;

public class PustyModel extends AbstractTableModel
{
    private int ileKolumn;
    //------------------------
    public PustyModel(int ile)
    {
        ileKolumn=ile;
    }
    //------------------------
    public int getRowCount(){return 0;}
    public int getColumnCount(){return ileKolumn;}
    public Object getValueAt(int wiersz,int kolumna){return null;}
}

oraz

        model=new PustyModel(tabela.getColumnCount());
        tabela.setModel(model);
        model.fireTableDataChanged();

pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1