Avatar billede clone Nybegynder
12. marts 2001 - 15:45 Der er 1 kommentar

Flere linier i samme tabel-række?

Er det muligt at indsætte flere linie i samme række i en JTabel tabel?
Avatar billede kezzelski Nybegynder
21. marts 2001 - 23:10 #1
Jepser, på flere måder! den jeg har leget med er rimeligt besværligt, men den virker og giver en en masse frihed til at indsætte alt hvad man ønsker i Tabellen!!! Jeg brugte dette trik til JList, men den skulle også virke til JTabel!
  Når java kalder repaint på en liste kalder den videre til en ListCellRendere, som maler de enkelte celler! nedenunder har jeg givet et bud på en sådan!!

import javax.swing.*;
import java.awt.*;

class CelleMager extends JComponent implements ListCellRenderer {

  //En ListCellRenderer tager følgende ind fra listen af:
  //selve listen (bruger vi ikke til noget)
  //Objectet der skal være i hver celle(i vores tilfælde er det altid et JPanel
      //der kommer fra listerne!
  //en boolean der fortæller om cellen er valgt, bruges til at give den farve!
  //en boolean der fortæller om cellen har fokus, bruges ikke!
  public Component getListCellRendererComponent(JList liste, Object detteObject,
                          int listeIndex, boolean isSelected, boolean cellHasFocus){
    //Da vi ved at detteObject er et JPanel kan vi kaste det!
    JComponent heleCellen = (JPanel)detteObject;
    //hvis cellen er valgt får den ny baggrund!
    if (isSelected) {
      heleCellen.setBackground(liste.getSelectionBackground());
      heleCellen.setForeground(liste.getSelectionForeground());
    }
    else {
      heleCellen.setBackground(liste.getBackground());
      heleCellen.setForeground(liste.getForeground());
    }
    heleCellen.setEnabled(liste.isEnabled());
    heleCellen.setFont(liste.getFont());
    //en lille kant!!!
    heleCellen.setBorder(BorderFactory.createMatteBorder(0,0,1,0,
                                                        new Color(50,50,50)));
  //og den dugfriske nye celle smides videre til en ListCellPainter, men
  //det er en anden sag!
  return heleCellen;
  }
}
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