我想修改表格内一列表现字体为蓝色,有下划线,在执行的时候发现该表格不能选择了,新手求大虾指点。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;
}

解决方案 »

  1.   

    DefaultTableModel的isCellEditable 设置试试。
     public boolean isCellEditable(int row, int column) {
            return false;
        }
      

  2.   

    如果你是继承DefaultTableCellRenderer 的话,试试看使用父类返回的JLabel
    DefaultTableCellRenderer 继承自JLabel,它的getTableCellRendererComponent方法会返回自己也就是: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;
    }
      

  3.   

    使用Irrecursible的方法已经解决问题,同时感谢banquet的热心帮助