Как выделить строку таблицы, если задано условие?

У меня есть jtable, который состоит из столбцов:

C No, Borrower, Market, Loan, Start, Daily, Expiry

как я могу выделить строку таблицы, если текущая дата находится в 5 днях от даты внутри столбца 'expiry'?

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");     
            Calendar cal  = Calendar.getInstance();           
            String expDateString = sdf.format(cal.getTime()).toString();
            System.out.println(expDateString);
             String nana = tableSummary.getModel().getValueAt(row, 6).toString();
            System.out.println(nana);


            for(int i=0; i<=tableSummary.getRowCount()-1; i++){

                   if(nana.compareTo(expDateString)>=0){                           
                       rowrenderer.setBackground(Color.RED);

                   }
             }

person zairahCS    schedule 15.03.2012    source источник
comment
Вы не предоставили никакой информации, которая могла бы вам помочь. Вы создаете HTML или это приложение Swing? Какой js-фреймворк вы используете, если есть? Вы используете Tomcat и JSP или другой JEE-контейнер? Пожалуйста, прочтите часто задаваемые вопросы и как спросить перед публикацией.   -  person Jim Garrison    schedule 15.03.2012
comment
@JimGarrison: Прямо здесь, в неотредактированном вопросе, написано jtable, так что очевидно, что это связано со Swing. Это резонный вопрос, на который, я думаю, достаточно информации, чтобы на него ответить. Может быть хорошей идеей отозвать отрицательный голос.   -  person Distortum    schedule 15.03.2012
comment
Ой, простите. Да, это в Java, связанном со Swing, так как это jtable.   -  person zairahCS    schedule 15.03.2012
comment
jtable перегружен. Есть даже jtable.org для плагина JQuery с таким названием.   -  person Jim Garrison    schedule 15.03.2012
comment
убедитесь, что вы понимаете, как работает механизм рендеринга docs.oracle.com/ javase/tutorial/uiswing/components/table.html (перебирать значения и устанавливать некоторые фоны не имеет смысла)   -  person kleopatra    schedule 15.03.2012


Ответы (1)


Поскольку вы хотите выделить каждую ячейку в той же строке, что и соответствующий Expiry, вам следует переопределить prepareRenderer(), как показано в этом пример и обсуждается в этом вопросах и ответах. Вы можете определить совпадающую строку, используя методы Calendar. getInstance(), и вы можете изменить цвет, используя метод setBackground() средства визуализации.

person trashgod    schedule 15.03.2012
comment
можно попросить пример? я еще не совсем знаком с сотовым рендерером. Благодарность - person zairahCS; 15.03.2012
comment
Ой, извините за битую ссылку; Я обновил ответ выше. Лучшие примеры приведены в разделе Визуализация строк таблицы. . - person trashgod; 15.03.2012