JTable wyczyszczenie

Odpowiedz Nowy wątek
nowy programista
2008-03-02 21:59
nowy programista
0

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

Pozostało 580 znaków

bogdans
2008-03-03 06:52
bogdans
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():

Pozostało 580 znaków

opałek
2008-03-03 18:12
opałek
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;`

Pozostało 580 znaków

2008-03-04 02:02

Rejestracja: 13 lat temu

Ostatnio: 4 lata temu

0

Wystarczy:

model.setRowCount(0);

Registered Linux user #456405 | SCJP 6 | SCWCD 5 | SCBCD 5

Pozostało 580 znaków

bogdans
2008-03-04 20:54
bogdans
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>.

Pozostało 580 znaków

bogdans
2008-03-04 22:00
bogdans
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

Pozostało 580 znaków

Odpowiedz

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