3
私の行の背景色を設定する必要があります。例えば、これらの行があります(12.01.15上記)と同じ日付の2行がある場合同じ日付の行の背景色を設定する
29.12.14 Absences
12.01.15 Absences
12.01.15 Accounts
は今、彼らは、GUIの同じ背景色を有するべきです。
String week = new String();
int weekCounter = 0;
int colour = 0;
// Append the rows
for (ExcelRow row : printOutRows) {
if (weekCounter == 0){
week = row.getExcelCells().get(0).getExcelCell().getRichStringCellValue().getString();
colour = 0;
}
else if (row.getExcelCells().get(0).getExcelCell().getRichStringCellValue().getString().equals(week)){
colour = 0;
}
else {
week = row.getExcelCells().get(0).getExcelCell().getRichStringCellValue().getString();
colour = 1;
}
model.addRow(new Object[] {
row.getExcelCells().get(0).getExcelCell().getRichStringCellValue().getString(),
row.getExcelCells().get(1).getExcelCell().getRichStringCellValue().getString(),
row.getExcelCells().get(2).getExcelCell().getRichStringCellValue().getString(),
row.getExcelCells().get(3).getExcelCell().getNumericCellValue()});
if (colour == 0){
table.setSelectionBackground(Color.RED);
}
else{
table.setSelectionBackground(Color.LIGHT_GRAY);
}
weekCounter ++;
}
上記のコードを試しましたが、JTableのすべての行が白い背景になっています。どのように私の目標に達することができますか?
選択の背景はおそらく行く方法ではありません。問題の行のセルの背景を設定しようとします。 – Thomas
ロジックをTableCellRendererに配置し、レンダラーをテーブルに設定することができます。 setBackground(Color c)はレンダラーでトリックを行う必要があります。 – Endery
[レンダラー/表のエディターの概念](https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender) –