Укрощение jTable. Красота требует жертв.

Укрощение jTable. Красота требует жертв.

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

1) настроить колонки таблицы — заголовки, ширину;

2) заполнить таблицу данными;

3) нам нужна сортировка;

4) а потом хочется по раскрасить строчки

Итак, беремся за раскраску.

Серо, скучно, неинформативно

Как и полагается, для начала обозначим объем работ:

4.1) в первую очередь уберем серый фон;

4.2) в строчках, где указан email, шрифт перекрасим в синий;

4.3) чисто для примера выделенную строку подсветим зеленым синим (зеленым не красиво).

За визуальное оформление JTable отвечает класс по фамилии TableCellRenderer. Т. е. для того, что бы выполнить поставленную задачу мне нужно его немного подкрутить.

/**

* Этот метод будет вызываться при отрисовке ячеек таблицы

* @param JTable table это наша таблица

* @param Object value объект, который привязан к строке

* @param boolean isSelected признак выделения

* @param boolean hasFocus фокус

* @param int row номер строки

* @param int column номер колонки

*/

@Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) // тут будем брушить return this; }

Небольшая подготовка и установка цвета фона.

// для начала пропишем значение if (value!= null) setText(value. toString());

// находим соответствующий строке объект

Buddy buddy = (Buddy) alBuddies. get(row);

// убираем серость setBackground(Color. WHITE);

Устанавливаем цвет шрифта для строк, где указан email.

If (buddy. email. length() > 0) { setForeground(Color. BLUE);

}

И, наконец, цвет выделенной строки.

If (isSelected) { setBackground(new Color(117, 144, 174)) }


Карта сайта


Информационный сайт Webavtocat.ru