Ich muss die Hintergrundfarbe meiner Zeilen festlegen. Zum Beispiel gibt es diese Zeilen:Legen Sie die Hintergrundfarbe der Zeilen mit demselben Datum fest
29.12.14 Absences
12.01.15 Absences
12.01.15 Accounts
Nun, wenn es zwei Reihen mit dem gleichen Datum (oben 12.01.15) sie sollten die gleiche Hintergrundfarbe in der 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 ++;
}
Ich habe den obigen Code versucht, aber alle Zeilen in der JTable haben einen weißen Hintergrund. Wie kann ich mein Ziel erreichen?
Auswahl Hintergrund ist wahrscheinlich nicht der Weg zu gehen. Versuchen Sie, den Zellenhintergrund für die fraglichen Zeilen festzulegen. – Thomas
Sie können Ihre Logik in einen TableCellRenderer einfügen und den Renderer in der Tabelle festlegen. setBackground (Color c) sollte im Renderer funktionieren. – Endery
Bitte lesen Sie über [Renderer/Editor-Konzept in der Tabelle] (https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender) –