Avatar billede Slettet bruger
29. oktober 2004 - 15:10 Der er 2 kommentarer og
1 løsning

JProgressBar i en JTable

Hej.

Jeg kunne godt tænke mig at bruge JProgressBar's i JTable's, f.eks. som her: www.lancelot.dk/temp/1.jpg

( Ovenstående eksempel kan hentes her: www.lancelot.dk/temp/IndicatorCellRenderer.java og www.lancelot.dk/temp/IndicatorTableExample.java )

Jeg har en TableModel i forvejen, men jeg ved ikke hvad jeg skal ændre for at få den til at virke med JProgressBar. Min TableModel her sådan her ud:

  public class TraenerTabel
      extends AbstractTableModel {

    private String[] columnNames = {
        "Alle trænere for den klub du har valgt til venstre"};
    private ArrayList data;

    public TraenerTabel() {
      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) {
      Traener testTraener = (Traener) data.get(row);
      if (col == 0) {
        return testTraener.getNavn();
      }
      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: {
          ( (Traener) data.get(row)).setNavn(value.toString());
        }
        break;
      }
      fireTableCellUpdated(row, col);
    }

    public void addTraener(Traener traener) {
      data.add(traener);
      fireTableRowsInserted(data.size(), data.size());
    }

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

Traener objektet har en attribut (integer) som skal danne værdien for en JProgressBar.

Er der nogen der kan komme et eksempel eller hjælp til hvordan jeg kan få implementeret JProgressBar's i min JTable?

På forhånd tak.
Avatar billede _carsten Nybegynder
29. oktober 2004 - 15:39 #1
Du tilføjer IndicatorCellRenderer til den kolonne hvor den skal bruges

TableColumn col = mytable.getColumnModel().getColumn(i);
col.setCellRenderer( new IndicatorCellRenderer(0,100));

og så skal du selvfølgelig tilrette med noget a la
    public void setValueAt(Object value, int row, int col) {
      switch (col) {
        case 0: {
          ( (Traener) data.get(row)).setNavn(value.toString());
          break;
        }

        case 1: {
          ( (Traener) data.get(row)).setValue(value.toString());
          break;
        }

        break;
      }

og ligeså med getValeuAt
Avatar billede Slettet bruger
01. november 2004 - 14:23 #2
Takker, kom med et svar :)
Avatar billede _carsten Nybegynder
01. november 2004 - 20:03 #3
Kommer her :)
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