关于JTable中对单元格渲染背景色的问题几天都没有得到解决,我现在想了解一下DefaultTableCellRenderer这个类中的方法
getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column);中参数默认的值是从哪里获得的?
getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column);中参数默认的值是从哪里获得的?
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = new JLabel();
label.setOpaque(true);
if(isSelected){
label.setBackground(Color.red);
}else{
label.setBackground(Color.white);
}
return label;
}
那比如说在单击单元格时如何改变此单元格的背景颜色呢?----你应该考虑到单元格的单击事件,改变颜色是由单击事件触发的。下面给3楼仁兄代码加点注释,他的思想是对的。public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = new JLabel();-----申请标签
label.setOpaque(true);
if(isSelected){----判断是否选中
label.setBackground(Color.red);----选中设置背景色为红
}else{
label.setBackground(Color.white);----否则显示默认颜色白色。
}
return label;
}