2015-04-17 138 views
0
tblApplicant = new javax.swing.JTable(){ 
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column) 
    { 
    Component c = super.prepareRenderer(renderer, row, column); 

    // Alternate row color 
    String value = (String) tblApplicant.getValueAt(row, 4); 
    if (value == "Single" && !isRowSelected(row)) 
    c.setBackground(Color.LIGHT_GRAY); 

    return c; 
} 

};根據數據庫的值更改JTable行的顏色

這是我的新代碼im試圖獲得第4列的值,並等於它是單一的,如果它的真實背景是變化。 但這不是工作

+4

查看[如何使用表格](https://docs.oracle.com/javase/tutorial/uiswing/components/table.html)和[使用自定義渲染器](https://docs.oracle.com .com/javase/tutorial/uiswing/components/table.html#renderer) – MadProgrammer

+0

我在這裏展示了一個自定義渲染器的示例:http://stackoverflow.com/a/26982799/2891664 – Radiodef

+0

@Radiodef您可以使用它作爲重複關閉選項 – MadProgrammer

回答

2

的一種方法,讓您以色行無需使用自定義渲染的所有表格中的不同數據類型退房Table Row Rendering

+0

但我怎樣才能連接到數據庫? ,因爲我想爲來自數據庫的數值所在的行着色 –

+0

千萬不要嘗試連接到渲染器中的數據庫。渲染器中的代碼必須非常快。如果您想基於某些數據突出顯示某一行的顏色,那麼數據必須位於TableModel中。因此,當您執行數據庫查詢時,您必須獲取結束日期並將數據存儲在TableModel中。 – camickr

+0

你能給我一個示例代碼嗎? –