JTable

lernen.2007

Erfahrenes Mitglied
Hallo,

ich will die Farbe von eine Zelle dynamisch ändern. Ich habe das folgende Code:

Code:
public class ColumnCellRender extends DefaultTableCellRenderer {

            
        public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,int row, int column) {
            Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
                        
            if(rowColor != null && row == selectedRow) {
                c.setBackground(Color.RED);
                 rowColor = null;
                
                
            }
                
            return c;
       }
 
    }
Es funktioniert auch. Aber sobald ich auf die Zelle mit Maus klicke, dann wird die Farbdarstellung zurückgesetzt.

Weiss vielleicht jemand, woran es liegen kann?


Gruß
erkan
 
Moin!
Ich schätze es liegt daran, dass nicht mehr der Renderer für die Darstellung zuständig ist, wenn du auf die Zelle klickst, sondern die Editorkomponente. Musst also dessen getTableCellEditorComponent() Methode auch entsprechend anpassen. Bzw. es müsste auch reichen, wenn deine Tabelle nicht editierbar ist...

*grüssle*
MeinerEiner
 
Hallo,

aber die Farben sollen aufs Dauer gespeichert werden d.h. der User kann mehrere Zellen mit verschiedenen Farben markieren. Ich biete Ihm ein JChoose(Farbpalette) an.

Gruß
 
Moin!
Dann merke dir diese Farben doch einfach und setze sie jedesmal beim Aufruf der Renderer und Editorkomponente...


*grüssle*
MeinerEiner
 
Zurück