2012-03-15 66 views
1

我有一個JTable是由列:如何在給定條件時突出顯示行表?

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

我怎麼能突出顯示錶行,如果當前日期是從列'expiry'內5日內離開?

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); 

        } 
      } 
+0

你沒有提供任何人可以用來幫助你的信息。你正在生產HTML,還是這是一個Swing應用程序?你用什麼js框架,如果有的話?你正在運行Tomcat和JSP或其他JEE容器嗎?發佈前請閱讀[常見問題]和[問]。 – 2012-03-15 04:52:09

+2

@JimGarrison:在未編輯的問題中,它表示「jtable」,所以顯然這與Swing有關。我認爲這是一個合理的問題,它有足夠的信息來回答。取消倒票可能是一個好主意。 – 2012-03-15 05:09:09

+0

哦,對不起。是的,它在java中,與Swing相關,因爲它是jtable。 – zairahCS 2012-03-15 05:18:22

回答

3

因爲你想在同一行中的每一個細胞都彰顯作爲一個合格的Expiry,你應該重寫prepareRenderer(),如本example並在此Q&A討論。您可以使用Calendar. getInstance()的方法確定匹配行,並且可以使用渲染器的setBackground()方法更改顏色。

+0

can我要求一個例子嗎?我還不是很熟悉cellrenderer。謝謝 – zairahCS 2012-03-15 14:28:16

+0

哎呀,對不起,因爲斷開的鏈接;我已經更新了上面的答案。最好的例子是[* Table Row Rendering *](http://tips4java.wordpress.com/2010/01/24/table-row-rendering/)。 – trashgod 2012-03-15 18:18:12