我有一个 jTable 如下:
我希望当 中的值Quantité
小于 中的值时Min seuil de suantité
,将行的颜色更改为粉红色。
在程序的加载中一切正常,但是当我做一些像点击表格这样的事件时,所有行的颜色都会改变,即使 的值Quantité
不小于 的值Min seuil de quantité
:
这是我的单元格渲染:
public class CustomTableCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table,
Object obj, boolean isSelected, boolean hasFocus, int row, int column) {
Component cell = super.getTableCellRendererComponent(
table, obj, isSelected, hasFocus, row, column);
setHorizontalAlignment(SwingConstants.LEFT);
int selectedRow = table.convertRowIndexToModel(row);
if (table.getModel().getValueAt(selectedRow, 3) != null && table.getModel().getValueAt(selectedRow, 4) != null) {
int quantite = Integer.parseInt(table.getModel().getValueAt(selectedRow, 3).toString());
int minQuantite = Integer.parseInt(table.getModel().getValueAt(selectedRow, 4).toString());
if (quantite < minQuantite) {
if (isSelected) {
cell.setBackground(new Color(255, 138, 239));
} else {
cell.setBackground(new Color(252, 189, 252));
}
}
}
return cell;
}
}
这是允许我影响单元格渲染到我的表格的代码:
private void cellRendering(){
for (int i = 0; i < masterTable.getColumnCount(); i++) {
tcol = masterTable.getColumnModel().getColumn(i);
tcol.setCellRenderer(new CustomTableCellRenderer());
}
}