Как заставить столбец JTable изменить его цвет в соответствии с определенными значениями из базы данных - PullRequest
1 голос
/ 30 сентября 2011

Я создаю Клиент / сервер Настольное приложение.

Я хотел знать, возможно ли создать Столбец JTable Изменяет свой цвет в соответствии с конкретными значениями из базы данных (оракул).

  • Красный = "Отказался".
  • зеленый = "Принято".
  • желтый = "Карантин".

Ответы [ 2 ]

2 голосов
/ 30 сентября 2011

Используйте соответствующий рендерер .

1 голос
/ 30 сентября 2011

Используйте для этого специальный обработчик столбцов:

public class ColorColumnRenderer extends DefaultTableCellRenderer 
{
   Color bkgndColor, fgndColor;

   public ColorColumnRenderer(Color bkgnd, Color foregnd) {
      super(); 
      bkgndColor = bkgnd;
      fgndColor = foregnd;
   }

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

      cell.setBackground( bkgndColor );
      cell.setForeground( fgndColor );

      return cell;
   }
}

Вы можете использовать этот рендер как этот (пример для одного столбца):

TableColumn tm = table.getColumnModel().getColumn(0);
tm.setCellRenderer(new ColorColumnRenderer(Color.lightGray, Color.blue));

Получив код изменения цвета, вы можете создать прослушиватель , который прослушивает изменения значений в модели таблицы и, проверяя изменения, вы можете применить нужные цвета к определенным столбцам.

...