Avatar billede Slettet bruger
06. marts 2004 - 21:04 Der er 2 kommentarer og
1 løsning

Hjælp til JTable

Hej, jeg har en AbstractTableModel til min JTable men jeg kunne godt tænke mig at have en metode hvor jeg kan slette en række på listen ved at give den enten et objekt (tjek public void addKalender(Kalender kalender)). Er der en der kan hjælpe?


  public class KalenderTabel
      extends AbstractTableModel {

    private String[] columnNames = {
        "Dato", "Tid", "Type", "Beskrivelse"};
    private ArrayList data;

    public KalenderTabel() {
      data = new ArrayList();
    }

    public int getColumnCount() {
      return columnNames.length;
    }

    public int getRowCount() {
      return data.size();
    }

    public String getColumnName(int col) {
      return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
      Kalender kalender = (Kalender) data.get(row);
      if (col == 0) {
        return " "+kalender.getDato();
      }
      else if (col == 1) {
        return " "+kalender.getTid();
      }
      else if (col == 2) {
        return " "+kalender.getType();
      }
      else if (col == 3) {
        return " "+kalender.getBeskrivelse();
      }
      return null;
    }

    public Class getColumnClass(int c) {
      return getValueAt(0, c).getClass();
    }

    public boolean isCellEditable(int row, int column) {
      return false; // alle celler er ikke editerbare
    }

    public void setValueAt(Object value, int row, int col) {
      switch (col) {
        case 0: {
          ( (Kalender) data.get(row)).setDato( (String) value);
        }
        break;
        case 1: {
          ( (Kalender) data.get(row)).setTid( (String) value);
        }
        break;
        case 2: {
          ( (Kalender) data.get(row)).setType( (String) value);
        }
        break;
        case 3: {
          ( (Kalender) data.get(row)).setBeskrivelse( (String) value);
        }
        break;
      }
      fireTableCellUpdated(row, col);
    }

    public void addKalender(Kalender kalender) {
      data.add(kalender);
      fireTableRowsInserted(data.size(), data.size());
    }

    public void removeAll() {
      int slut = data.size();
      data.clear();
      fireTableRowsDeleted(0, slut);
    }

  }
Avatar billede Slettet bruger
06. marts 2004 - 21:28 #1
Der skulle stå: ...hvor jeg kan slette en række på listen ved at give den enten et objekt eller et index (int).
Avatar billede _carsten Nybegynder
06. marts 2004 - 22:16 #2
Tilføj disse 2 metoder til din model, de burde løse det problem


    public void removeRow(Kalender kalender){
        int i = data.indexOf(kalender);
        if(i >= 0){
            data.remove(i);
            fireTableRowsDeleted(i,i);
        }
    }

    public void removeRow(int row){
        data.remove(row);
        fireTableRowsDeleted(row, row);
    }
Avatar billede Slettet bruger
08. marts 2004 - 08:40 #3
Mange tak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester