Netbeans的问题与CustomTableCellRenderer



我正在尝试添加不同的数据类型(使JTable以适当的方式排序整数列)到我的JTable,同时渲染表以看到奇数行比偶数行更暗。

我有我的TableCellRenderer的以下代码:

public class MyCustomTableCellRenderer extends DefaultTableCellRenderer 
{
    @Override
    public Component getTableCellRendererComponent(JTable table, Object value, boolean lected, boolean hasFocus, int row, int column) 
    {
        Component cell = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
        if (isSelected)
            cell.setBackground( new Color(180,180 ,255) );
        else
            if( row%2 == 0)
                cell.setBackground( new Color(220,220 ,255) );
            else
                cell.setBackground( Color.white );
        return cell;
    }
}

数据模型代码是这样的:

DefaultTableModel MydataModel = new DefaultTableModel()
{
    @Override
    public boolean isCellEditable(int row, int col)
    {
        return false;
    }
    @Override
    public Class getColumnClass(int c)  
    {
        String colname = getColumnName(c);
        if (colname.contains("INT")) return Integer.class;
        return String.class;
    }
};

我正在使用new integer (some_integer)向表添加新的整数值。

在运行代码时,表以适当的方式呈现(奇数行和偶数行具有不同的颜色),但具有整数值的列除外。它们只是白色的,就像它们没有受到渲染器的影响一样。

请给我解释一下这个问题如何解决。提前感谢。马克斯。

这取决于你如何设置渲染器。使用

方法
public void setDefaultRenderer(Class<?> columnClass, TableCellRenderer renderer)

传递Integer类和渲染器

通过使用prepareRenderer,您可以消除通过int modelRow = convertRowIndexToModel(row);同步表视图和表模型的问题,这也将解决您的问题与破碎的剥离背景。你可以在这里看到一个例子,或者最好的例子是@camickr的表行渲染

相关内容

  • 没有找到相关文章

最新更新