title image


Smiley TableCellRenderer
Hallo Java-Spezialisten,



ich habe folgendes Problem:

In einer JTable mit drei Spalten und 20 Zeilen möchte ich einzelne Zellen

in den verschiedenen Spalten farbig unterlegen.

Leider gelingt mir das nur in der 1. Spalte (also 0).

Ich habe folgende Klasse geschrieben:



import java.awt.Component;



import javax.swing.BorderFactory;

import javax.swing.JLabel;

import javax.swing.JTable;

import javax.swing.border.Border;

import javax.swing.table.TableCellRenderer;



public class MyCellRenderer implements TableCellRenderer

{

private Color lightGray = new Color( 236, 233, 216);



public Component getTableCellRendererComponent(

JTable table,

Object value,

boolean isSelected,

boolean hasFocus,

int row,

int column) {

//Label erzeugen

JLabel label = new JLabel((String)value);



if (hasFocus) {

label.setBackground(lightGray);

} else if (isSelected) {

label.setBackground(lightBlue);

} else {

if ( column == 0) {

label.setBackground(lightGray);

}

if (column == 1) {

switch(row) {

case 12: case 17: label.setBackground(lightGray);

}

}

if (column == 2) {

switch(row) {

case 6: case 13: label.setBackground(lightGray);

}

}

}

return label;

}

}



Die rufe ich auf wie folgt:



myJTable.setDefaultRenderer(Object.class, new MyCellRenderer());



Die Spalten 1 und 2 werden ignoriert.

Spalte 0 wird komplett grau. Testhalber habe ich auch schon einzelne Zellen von

Spalte 0 grau gemacht. Das funktionierte.



Hat jemand eine Idee?



Das wäre super.




Herzliche Grüße aus dem Westerwald. Ulli

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: