# Checkbox in JTable , eigener Cellrenderer -wie gehts weiter?



## Falco (25. Aug 2007)

```
import java.awt.Color;
import java.awt.Component;
import javax.swing.JCheckBox;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.TableCellRenderer;

class CheckboxRenderer extends JCheckBox implements TableCellRenderer{

	   public Component getTableCellRendererComponent(JTable tabelle, Object wert,
	         boolean istSelektiert, boolean hatFocus, int zeile, int spalte) {
	      setHorizontalAlignment(JCheckBox.CENTER);
	      
	      return this;
	   }
}
```

die Klasse wo meine JTable tabelle deklariert ist heißt* ImageListPanel.class*


```
private String[] spaltennamen = {"Status" , "Gruppe" , "Programm" , "Aufgabe" };
 private String[][] tabellendaten = new String [50][4];
 DefaultTableModel dm;
 JTable tabelle;
```

*im Konstruktor von ImageListPanel.class:*


```
dm = new DefaultTableModel (tabellendaten,spaltennamen);         
tabelle = new JTable( dm );
```


Nun muss ich noch einen Renderer setzen:

tabelle.setDefaultRenderer(Object.class, *"Was kommt hier rein?"*)

Ich möchte ja nur, dass die 1.spalte sprich row(0) die Object.class hat nicht alle wie mache ich das dann?

und ich glaub da fehlt sonst auch noch was z.B. die getCellRenderer Methode muss ich da nicht auch noch etwas machen?


----------



## Beni (25. Aug 2007)

Hier gibts ein paar Beispiele.

Checkbox als Renderer gibts schon  . Das TableModel muss nur "Boolean.class" für eine bestimmte Spalte ausgeben (über "getColumnClass"), und er erscheint automatisch.

Aber um deine Frage noch zu beantworten: Anstelle von "Object.class" verwendest du besser was wie "Boolean.class" (das Model muss entsprechend bei "getColumnClass" eine "Boolean.class" zurückgeben). Und du übergibts der Methode eine Instanz deines neuen CellRenderers ("new CheckBoxRenderer()").


----------



## falco (25. Aug 2007)

danke ich schaus mir später mal an.


----------

