JTable - Backgroundcolor von Rows



  • Hallo, ist es möglich, z. B. durch überschreiben des CellRenderers, versch. Rows in einem JTable andersfarbig zu gestalten?

    Mein Problem ist folgendes: Ich habe einen JTable, in dem alle Tage eines Monats aufgeführt sind. Nun möchte ich aber speziell die Wochenenden andersfarbig gestalten. Ist dies so möglich?

    Wäre für jeden Vorschlag dankbar 🙂

    Bernd



  • hi,
    idee ist goldrichtig. du mußt dir einen CellRenderer schreiben und den jeweiligen spalten zuweisen.

    public class MyCellRenderer extends DefaultTableCellRenderer
    {
    	public MyCellRenderer()
    	{
    
            }
    
    	public Component getTableCellRendererComponent(
    	JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    	{
    		super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    
    		if (hasFocus)
    		{
    
    			setForeground( java.awt.Color.GREEN );
    			setBackground( java.awt.Color.CYAN );
    		}
    		else if (isSelected)
    		{
    
    			setForeground( java.awt.Color.RED );
    			setBackground( java.awt.Color.BLUE );
    		}
    		else
    		{
    			setForeground( java.awt.Color.BLACK );
    			setBackground( java.awt.Color.WHITE );
    		}
    		return this;
    	}
    
    }
    
    table.getColumnModel().getColumn(0).setCellRenderer( new MyCellRenderer() );
    

Anmelden zum Antworten