Опции вместо JTable - PullRequest
       6

Опции вместо JTable

0 голосов
/ 30 марта 2012
  1. Я хочу раскрасить каждую строку таблицы, используя определенные значения базы данных

      spcification of mine database is some what like
    
       **
       id     name    color
       1      pavan   red
       2      xyz     white
       **
    
  2. я могу задать цвет для заполнения таблицы, используя

       table.setBackground(new color(158,145,134);       
    
    
    
    
       please provide me some solution or hint to approch towards answer,
       Thanks in advance.
    

1 Ответ

4 голосов
/ 30 марта 2012

С JTable это совсем не сложно!На самом деле, это невероятно просто!

Смотрите мой ответ здесь: Выделите ячейку в JTable с помощью пользовательской настольной модели

Воспроизводится для удобства:


... Подкласс JTable и переопределить JTable.preparedRenderer(TableCellRenderer renderer, int row, int column).Если числа row и column совпадают, вы можете изменить цвет фона Component, возвращаемого в качестве дисплея (обычно JLabel);

Вот пример, который выделяет строкууказатель мыши находится над:

@Override
public Component prepareRenderer(final TableCellRenderer renderer, final int row, final int column) {
    final Component c = super.prepareRenderer(renderer, row, column);
    if (row == this.itsRow) {
        c.setBackground(Color.RED);
    }
    return c;
}

, где this.itsRow - поле типа int, обновляемое MouseMotionListener:

this.addMouseMotionListener(new MouseMotionListener() {
        public void mouseMoved(MouseEvent e) {
            SubclassedJTable.this.itsRow = SubclassedJTable.this.rowAtPoint(e.getPoint());
            SubclassedJTable.this.repaint();
        }
        public void mouseDragged(MouseEvent e) {/***/}
    });
...