日期:2014-05-20  浏览次数:20727 次

TableCellRenderer使用问题
我想修改表格内一列表现字体为蓝色,有下划线,在执行的时候发现该表格不能选择了,新手求大虾指点。Renderer中代码如下
JLabel t = new JLabel();
Renderer(){
t.setText("<html><u>内容</u></html>");
t.setFont(index.table.getFont());
t.setForeground(Color.blue);
t.setHorizontalAlignment(SwingConstants.CENTER);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
return t;
}

------解决方案--------------------
如果你是继承DefaultTableCellRenderer 的话,试试看使用父类返回的JLabel
DefaultTableCellRenderer 继承自JLabel,它的getTableCellRendererComponent方法会返回自己

也就是:
Java code

public Component getTableCellRendererComponent(JTable table,
            Object value, boolean isSelected, boolean hasFocus,
            int row, int column) {
        // TODO Auto-generated method stub
        Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus,
                row, column);
        
                JLabel label = (JLabel) c;
                // 在这个label上设置你要的东西,然后返回
        
        return label;
    }