getTableCellRendererComponent Nao Funciona

0 respostas
G

Ola Todos;

Meu renderizador na esta funcionando para a JTable

No codigo abaixo Seto CellRenderer para cada celula mas quando Seto Renderizador para JTable ficar zebrada ele nao funciona

Alguem pode ajudar ??

jTable1.setDefaultRenderer(Object.class, new CustomRenderer(ac, jTable1));
public class CustomRenderer extends DefaultTableCellRenderer  {

    private DefaultTableCellRenderer renderer;
    private JTable tabela;
    private TableColumnModel tcm;


    @SuppressWarnings("empty-statement")
    public CustomRenderer(ArrayList<colunaBean> colunas, JTable tabela) {
        //formata colunas cfe array

        this.tabela = tabela;        
        tcm = tabela.getColumnModel();
        //tabela.setDefaultRenderer(Object.class, this);

        for (int i = 0; i < colunas.size(); i++) {
            final colunaBean c = colunas.get(i);
            if (c.getFormatter() == null) {
                renderer = new DefaultTableCellRenderer();
            }

            if (c.getFormatter() != null) {
                renderer = new DefaultTableCellRenderer() {
                    private Format formatter = c.getFormatter();
                    protected void setValue(Object value) {
                        setText((value == null) ? "" : formatter.format(value));
                    }
                };

                int iParam = 0;
                if (c.getFormatter().toString().indexOf("Date") > -1) {
                    iParam = 0;
                } else if (c.getFormatter().toString().indexOf("Integer") > -1) {
                    iParam = 1;
                } else if (c.getFormatter().toString().indexOf("Decimal") > -1) {
                    iParam = 2;
                }

                //define CellEditor
                DefaultCellEditor df = new CustomCellEditor(c.getFormatter(), iParam);
                tcm.getColumn(i).setCellEditor(df);

            }
            if (c.getAlignment() > -1) {
                setAlignment(c.getAlignment());
            }

            if (c.getWidth() > 0) {
                setWidth(i, c.getWidth());
            }

            if (c.getTooltiptext() != null) {
                setTooltiptext(c.getTooltiptext());
            } else {
                setTooltiptext(c.getNome());
            }

            //define CellRenderer
            tcm.getColumn(i).setCellRenderer(renderer);
        }
    }
    
    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
            boolean hasFocus, int row, int column) {
        JTextField editor = new JTextField();
        if (value != null) {
            editor.setText(value.toString());
        }
        editor.setBackground((row % 2 == 0) ? Color.white : Color.cyan);
        return editor;
   }
Criado 25 de agosto de 2010
Respostas 0
Participantes 1