Avatar billede dueholm Praktikant
23. oktober 2002 - 11:41 Der er 2 kommentarer og
1 løsning

Sætte farven på en enkelt celle i JTable!

Hejsa!

Jeg har et problem med at jeg har nogle udvalgte celler i et JTable som skal farves røde og grønne!

Men hvordan gør man det??

Jeg har forsøgt med setBackground-metoden men den sætter selvfølgelig farven på hele tabellen!

Er der nogen der har et simpelt eksempel på hvordan man løser ovenstående?

Kasper
Avatar billede caspermadsen Nybegynder
23. oktober 2002 - 11:50 #1
JTable myTable = new JTable(...);

        class GridTableCellRenderer extends JLabel implements TableCellRenderer{

            public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                if(row == 2) {
                    setBackground(Color.green);
                } else {
                    if(row == 4 && column == 1) {
                        setBackground(Color.red);
                    }
                }
            }
        }

        myTable.setDefaultRenderer(JLabel.class,new GridTableCellRenderer());

Dette burde virke! Prøv det! :)
Avatar billede di8leva Nybegynder
25. oktober 2002 - 11:21 #2
Man måste æven ændra i getColumnClass(int columnIndex) och dær returnera JLabel.class før den aktuella columnen. Annars vet inte JTable nær den skall anvænda den nya renderern.
Man kan æven byta ut JLabel.class i ovanstående (och i getColumnClass(int columnIndex)) mot vilken klass man vill, f.eks. String.class eller en egen klass.
Avatar billede dueholm Praktikant
15. januar 2003 - 11:34 #3
Takker!
*lukket*
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