2015-04-17 85 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

你能给我一个示例代码吗? –