Java JTable-为所选行着色
我找遍了,但似乎找不到类似的答案 我想给选定的行上色,同时给其他行永久上色。 i、 e使总计列始终为灰色,但动态地使选定行为灰色 我在努力Java JTable-为所选行着色,java,colors,jtable,Java,Colors,Jtable,我找遍了,但似乎找不到类似的答案 我想给选定的行上色,同时给其他行永久上色。 i、 e使总计列始终为灰色,但动态地使选定行为灰色 我在努力 JTable table = new JTable(model) { public Component prepareRenderer(TableCellRenderer renderer, int index_row, int index_col) { Component comp = super.prepareRe
JTable table = new JTable(model) {
public Component prepareRenderer(TableCellRenderer renderer, int index_row, int index_col) {
Component comp = super.prepareRenderer(renderer, index_row, index_col);
//odd col index, selected or not selected
if(isCellSelected(index_row, index_col)){
comp.setBackground(Color.GRAY);
}
if (index_col == 34) {
comp.setBackground(Color.GRAY);
} else {
comp.setBackground(Color.WHITE);
setSelectionForeground(Color.BLUE);
setSelectionBackground(Color.GRAY); // Thought this would work but has no affect.
// comp.setFont(new Font("Serif", Font.BOLD, 12));
}
return comp;
}
};
但是它并没有改变所选行的背景色,只是改变了整行的背景色。我不确定,但我认为如果(isCellSelected(index\u Row,index\u col))
块这可以解决您的问题:
...
if (isCellSelected(index_row, index_col)){
comp.setBackground(Color.GRAY);
} else {
if (index_col == 34) {
comp.setBackground(Color.GRAY);
} else {
comp.setBackground(Color.WHITE);
}
}
...
100%. 杰出的这让我烦了一阵子。非常感谢。