TableCellRenderer (Java API): Unterschied zwischen den Versionen

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen
K
K
Zeile 1: Zeile 1:
{{JAPI|TableCellRenderer}} ist ein [[Interface_(Java)|Interface]] der [[Java]] [[API]]. ''TableCellRenderer'' werden von der [[JTable_(Java_API)|JTable]] benutzt, um einzelne Zellen zu zeichnen.
+
'''{{JAPI|TableCellRenderer}}''' ist ein [[Interface_(Java)|Interface]] der [[Java]] [[API]]. ''TableCellRenderer'' werden von der [[JTable_(Java_API)|JTable]] benutzt, um einzelne Zellen zu zeichnen.
  
 
Die ''JTable'' fordert den ''TableCellRenderer'' über die Methode ''getTableCellRendererComponent'' auf, eine graphische Darstellung, in Form einer [[Component_(Java_API)|Component]], zu generieren. Diese ''Component'' wird anschliessend in eine Zelle eingepasst, und gezeichnet. Nach dem Zeichenvorgang, wird die ''Component'' von der ''JTable'' nicht mehr benötigt, und kann vom ''TableCellRenderer'' wiederverwertet werden.
 
Die ''JTable'' fordert den ''TableCellRenderer'' über die Methode ''getTableCellRendererComponent'' auf, eine graphische Darstellung, in Form einer [[Component_(Java_API)|Component]], zu generieren. Diese ''Component'' wird anschliessend in eine Zelle eingepasst, und gezeichnet. Nach dem Zeichenvorgang, wird die ''Component'' von der ''JTable'' nicht mehr benötigt, und kann vom ''TableCellRenderer'' wiederverwertet werden.

Version vom 6. Mai 2014, 07:37 Uhr

TableCellRenderer ist ein Interface der Java API. TableCellRenderer werden von der JTable benutzt, um einzelne Zellen zu zeichnen.

Die JTable fordert den TableCellRenderer über die Methode getTableCellRendererComponent auf, eine graphische Darstellung, in Form einer Component, zu generieren. Diese Component wird anschliessend in eine Zelle eingepasst, und gezeichnet. Nach dem Zeichenvorgang, wird die Component von der JTable nicht mehr benötigt, und kann vom TableCellRenderer wiederverwertet werden.

Zu beachten ist, dass der Benutzer nur ein Bild des TableCellEditors sieht, aber nichts anklicken kann. Wenn eine Zelle editiert werden soll, wird ein TableCellEditor benötigt.

Das folgende Beispiel zeigt einen sehr kleinen Renderer, der für boolsche Werte eine JCheckBox zeichnet, für andere Werte nur ein leeres Feld. <code=java>public class BooleanRenderer implements TableCellRenderer{

 // Die zwei graphischen Repräsentationen dieses Renderers
 private JCheckBox box = new JCheckBox();
 private JLabel empty = new JLabel();
 public Component getTableCellRendererComponent(
     JTable table, 
     Object value,  
     boolean isSelected,
     boolean hasFocus, 
     int row, 
     int column){
   if( value instanceof Boolean ){
     // Die Box selektieren
     box.setSelected( Boolean.TRUE.equals( value ));
     // Die Box wird nun gezeichnet
     return box;
   }
   else{
     // Das leere Feld wird nun gezeichnet
     return empty;
   }
 }

}</code=java>