我有一个 JTable。我使用 setDefaultRenderer 为某些行着色,如下所示:
Acueill.jTableProduit.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) {
super.getTableCellRendererComponent( table, value, false, hasFocus, row, col);
final int qte = (int) table.getModel().getValueAt(row, 7);
final int min = (int) table.getModel().getValueAt(row, 8);
if (qte < min) {
setBackground(Color.red);
} else {
setBackground(table.getBackground());
}
return this;
}
});
但是我的 jtable 不接受选择行。如何解决这个问题?
最佳答案
在我看来,即使您在不同的列中有字符串和数字数据,您也尝试为表使用单个渲染器。这不是一个好主意。通常数字的格式和显示方式与字符串不同。因此,您需要为表中的每种数据类型创建多个渲染器。
要了解不同的方法,请查看 Table Row Renderering它展示了如何在没有自定义渲染器的情况下设置整行的背景。
关于java - jtable 的行不接受选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37024625/