1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| public class TableRenderer extends DefaultTableCellRenderer
{
private static final long serialVersionUID = 1L;
private JTable tempTable;
public TableRenderer(ConnectionTool connector, String tableName, String primary_key)
{
Object[][] datas;
String[] title = new String[]{"id", "boolean"};
/*Effectue une requête SQL retournant un Object[][] (à adapter suivant la méthode de connection utilisée)*/
datas = connector.getDb().pgSqlSelectQueryTable("Select "+primary_key+", boolean FROM "+tableName+" WHERE boolean = TRUE ORDER BY "+primary_key+"");
tempTable = new JTable(datas, title);
}
public TableRenderer(ConnectionTool connector, String query)
{
Object[][] datas;
String[] title = new String[]{"id", "boolean"};
datas = connector.getDb().pgSqlSelectQueryTable(query);
tempTable = new JTable(datas, title);
}
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
for(int j=0; j<tempTable.getRowCount(); j++)
{
if(isSelected)
{
//Vérifie la correspondance des id entre les 2 tables
if(table.getValueAt(row, 0).toString().equals(tempTable.getValueAt(j, 0).toString()))
{
cell.setBackground(new Color(20, 59, 119));//bleu
cell.setForeground(Color.white);
return cell;
}
else
{
cell.setBackground(table.getSelectionBackground());
cell.setForeground(table.getSelectionForeground());
}
}
else
{
if(table.getValueAt(row, 0).toString().equals(tempTable.getValueAt(j, 0).toString()))
{
System.out.println("Est confirmé");
cell.setBackground(new Color(101, 237, 71));//vert
return cell;
}
else
{
cell.setBackground(table.getBackground());
cell.setForeground(table.getForeground());
}
}
}
return cell;
}
} |
Partager