java setSelectionBackGround()不在jTable中设置颜色
我认为是prepareRenderer(...)
引起了麻烦。我创建jTable的代码是:-
jTable1 = new javax.swing.JTable(){
public Component prepareRenderer(TableCellRenderer renderer, int row, int column)
{
Component c = super.prepareRenderer(renderer, row, column);
if(column==0){
c.setBackground(new java.awt.Color(223, 223, 223));
c.setForeground(new Color(121, 63, 63));
c.setFont(new java.awt.Font("Tahoma", java.awt.Font.BOLD, 12));
}else{
c.setBackground(new java.awt.Color(235, 235, 235));
c.setFont(new java.awt.Font("Tahoma", java.awt.Font.PLAIN, 12));
}
return c;
}
};
现在,当我使用:-
jTable1.setSelectionBackground(Color.BLACK);
它不起作用。知道怎么修吗
编辑:在完全删除prepareRenderer(...)
方法后,我测试了该程序,可以进行黑色选择
# 1 楼答案
终于找到了解决办法
# 2 楼答案
这是DefaultTableCellRenderer的代码片段
正如您所见,选择背景设置为渲染器(实际上是在调用super.prepareRenderer(渲染器、行、列))中)
之后,您只需根据列将背景重置为其中一种颜色。但无论哪一列编号,实际上都会替换选择背景
如果列=0呼叫