TableCellRenderer auf Farben auslegen

Guadrion

Mitglied
Hi liebe Leutz, und twar hab ich folgenden code:
Code:
public class Dialog extends JDialog {
   ...
   private Vector<Color> colors;

   private void initComponents() {

               colors = new Vector<Color>();
		colors.add(new Color(228, 26, 28));
		colors.add(new Color(55, 126, 184));
		colors.add(new Color(77, 175, 74));
		colors.add(new Color(152, 78, 163));
		colors.add(new Color(255, 127, 0));
		colors.add(new Color(255, 255, 51));
		colors.add(new Color(166, 86, 40));
		colors.add(new Color(247, 129, 191));
		colors.add(new Color(153, 153, 153));

   ...
   colorTable = new JTable(3, 3);
   colorTable.setDefaultRenderer(Color.class,new ColorTableCellRenderer());
   int counter = 0;
   for (int y = 0; y < 3; y++) {
      for (int x = 0; x < 3; x++) {
         colorTable.setValueAt(colors.get(counter), y, x);
         counter++;
      }
   }  
}
	class ColorTableCellRenderer extends DefaultTableCellRenderer {

		private static final long serialVersionUID = 42L;

		public Component getTableCellRendererComponent(JTable table,
				Object value, boolean isSelected, boolean hasFocus, int row,
				int column) {
			//super.getTableCellRendererComponent(table, value, isSelected,
				//	hasFocus, row, column);

			Color color = (Color) value;
			// setText(color.getRed() + ", " + color.getBlue() + ", "
			// + color.getGreen());
			System.out.println("drin");
			setText("Ätscht");
			setForeground(color);
			setBackground(color);
			return this;
		}
	}
}

aber ich bekomme immer wieder nur eine Table angezeigt wo Einträge wie :
java.awt.Color[r=255,g=127,b=0]
dastehen, aber selbst das "ätscht" wird nicht angezeigt, geschweige denn irgendein consolen output auf println.....

Habt ihr ne idee warum er diesen CellRenderer nicht annimmt?

Ich hab mir mal danach das ganze mit getDefaultCellRenderer ausgeben lassen auf der Console und erhalte das hier:
Code:
gui.Dialog$ColorTableCellRenderer[Table.cellRenderer,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=javax.swing.border.EmptyBorder@4914a947,flags=25165832,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=,verticalAlignment=CENTER,verticalTextPosition=CENTER]

Also hat er das wohl doch genommen, die Frage is warum er das nicht akzeptiert, bzw. die Color Datentypen nicht darstellt....
 
Zuletzt bearbeitet:
Hat sich erledigt.


setOpaque(true) hat gefehlt ;)


Aber wisst irh wie ich bestimmen kann wie in ner ComboCheckBox der aktuell gewählte Wert dargestellt wird? Also wenn die Auswahlliste geschlossen ist?
Weil im ListCellRenderer hab ich ja nur die Bestimmungsmöglichkeit über Objekte die per Maus anvisiert werden!
 
Zurück