Jak pokolorować wiersz tabelki?

0

Witam

  Nie wiem jak poradzić sobie z kolorwaniem wiersza w tabeli wedle wartości komórki. Mam taki render jak poniżej , który działa jednak koloruje mi tylko komórke o poszukiwanej wartośc, chciałbym aby kolorował cały wiersz. Nie moge tego przeskoczyć. Prosze o pomoc w problemie. 
public Component getTableCellRendererComponent
 (JTable table, Object obj, boolean isSelected,boolean hasFocus, int row, int column)
  {  
    adaptee.getTableCellRendererComponent(table, obj,isSelected, hasFocus, row, column);
    setForeground(adaptee.getForeground());
    setBackground(adaptee.getBackground());
    setBorder(adaptee.getBorder());
    setFont(adaptee.getFont());
    setText(adaptee.getText());

    //-------------------------------------------------------------------
    Color zielony2 = new Color(20, 100, 253, 72);//red,green
    Color zielony = new Color(137, 193, 123, 152);   
    Color zolty = new Color(255, 255, 96, 52);
    Color szary = new Color(192, 192, 192, 52);

    if (isSelected)
      {
       setForeground(Color.black);
       setBackground(zielony2);
      }
    else
      {  
    
        if(obj.equals("Zamknięte"))
          {
           setForeground(Color.black);
           setBackground(zielony);
          }  
       if(obj.equals("W realizacji"))
          {
           setForeground(Color.black);
           setBackground(zolty);
          }  
       if(obj.equals("Odrzucony"))
          {
           setForeground(Color.black);
           setBackground(szary);
          }
      }   
    //--------------------------------------------------------------------------
    TableColumnModel columnModel = table.getColumnModel();
    setSize(columnModel.getColumn(column).getWidth(), 100000);
    int height_wanted = (int) getPreferredSize().getHeight();
    addSize(table, row, column, height_wanted);
    height_wanted = findTotalMaximumRowSize(table, row);
    if (height_wanted != table.getRowHeight(row)) {
      table.setRowHeight(row, height_wanted);
    }
    return this;
  }
0

Funkcja getTableCellRendererComponent dostaje jako parametr numer wiersza (row), korzystając z tego numeru odczytaj wartość interesującej Cię komórki.

0
            public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
                Component c = renderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

                if (row % 2 == 0) {
                    c.setBackground(new Color(225, 225, 225));
                } else {
                    c.setBackground(new Color(240, 240, 240));
                }
                c.setForeground(Color.black);
]

W moim potrzebowłem zmienić kolor całego wiersza co drugi wiersz - oczywiście możesz mieć inne kryterium kolorowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1