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; } }
Synes godt om
Ny brugerNybegynder
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.