[JAVA SWING] Rij van JTable kleuren

Pagina: 1
Acties:

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Hey,

Ik heb een hele mooie JTable met allemaal gegevens (onderhoud statussen) nou wil ik als van een ruimte de status bv is small maintenance dat de hele rij een bepaalde kleur krijgt zodat je gemakkelijk de verschillende types kan zien. Ik heb het nu zo:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class MyTableCellRendererOnderhoud extends DefaultTableCellRenderer {
  public Component getTableCellRendererComponent(
      JTable table,
      Object value,
      boolean isSelected,
      boolean hasFocus,
      int row,
      int column) {
    Component renderer =
        
       super.getTableCellRendererComponent(table,value,isSelected,hasFocus,row,column);
    if (value.equals("Small maintenance")) {
      renderer.setBackground(new Color(255,213,222));
      renderer.setForeground(Color.red);
      
    }
    else {
      //renderer.setBackground(Color.white);
      renderer.setForeground(Color.black);
    }
    return renderer;
  }
}

Maar hij kleurt nu alleen de cell waar de status in staat. Weet iemand hoe ik gemakkelijk de hele rij kan laten kleuren ?

[ Voor 25% gewijzigd door emkedouwe op 12-06-2003 15:54 ]


  • Stephan Oudmaijer
  • Registratie: Oktober 2000
  • Laatst online: 16-08-2023
je moet aan een bepaalde table column een cellrenderer toekennen:

table.getColumnModel().getColumn(<welke_column>).setCellRenderer(<mijnCellRenderer>);

laat even weten of het gelukt is!

Verwijderd

Zo even uit het hoofd:

code:
1
2
3
4
5
if (table.getValueAt(row, statusCol).equals("Small maintenance")) {
      renderer.setBackground(new Color(255,213,222));
      renderer.setForeground(Color.red);
      
}


Waarbij statusCol het kolomnummer is waarin alle statussen staan.

  • emkedouwe
  • Registratie: September 2001
  • Laatst online: 26-11-2021
Thank u :) ik heb nu dit:

code:
1
2
3
if (table.getValueAt(row, 1).equals("Small maintenance")) {
      renderer.setForeground(Color.red);
    }


En het werkt perfect !!