代码如下:
import javax.swing.JLabel;
import java.awt.Component;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
public class Renderer extends DefaultTableCellRenderer{
public void fillColor(JTable t,JLabel l,boolean isSelected ){
//setting the background and foreground when JLabel is selected
if(isSelected){
l.setBackground(t.getSelectionBackground());
l.setForeground(t.getSelectionForeground());
}
else{
l.setBackground(t.getBackground());
l.setForeground(t.getForeground());
}
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int row, int column)
{
if(value instanceof JLabel){
JLabel label = (JLabel)value;
//to make label foreground n background visible you need to
// setOpaque -> true
label.setOpaque(true);
fillColor(table,label,isSelected);
return label;
}
else
return super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
}
}
本文介绍了一个自定义的JTable单元格渲染器实现,该实现通过继承DefaultTableCellRenderer来改变表格中JLabel类型的单元格背景和前景颜色。当单元格被选中时,会应用表格的选中背景和前景颜色;未选中时,则使用表格默认的颜色设置。
1764

被折叠的 条评论
为什么被折叠?



