[Resolvido] JButton em JTable

1 resposta
P

Ola pessoal, estou tentando inserir botões no JTable.

Achei uma classe aqui no Fórum mesmo que adicionou o botão. A classe é essa:

public class ButtonColumn extends AbstractCellEditor  
    implements TableCellRenderer, TableCellEditor, ActionListener  
{  
    JTable table;  
    JButton renderButton;  
    JButton editButton;  
    String text;  

    public ButtonColumn(JTable table, int column)  
    {  
        super();  
        this.table = table;  
        renderButton = new JButton();  

        editButton = new JButton();  
        editButton.setFocusPainted( false );  
        editButton.addActionListener( this );  

        TableColumnModel columnModel = table.getColumnModel();  
        columnModel.getColumn(column).setCellRenderer( this );  
        columnModel.getColumn(column).setCellEditor( this );  
    }  

    public Component getTableCellRendererComponent(  
        JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)  
    {  
        if (hasFocus)  
        {  
            renderButton.setForeground(table.getForeground());  
            renderButton.setBackground(UIManager.getColor("Button.background"));  
        }  
        else if (isSelected)  
        {  
            renderButton.setForeground(table.getSelectionForeground());  
            renderButton.setBackground(table.getSelectionBackground());  
        }  
        else  
        {  
            renderButton.setForeground(table.getForeground());  
            renderButton.setBackground(UIManager.getColor("Button.background"));  
        }  

        renderButton.setText( (value == null) ? "" : value.toString() );  
        return renderButton;  
    }  

    public Component getTableCellEditorComponent(  
        JTable table, Object value, boolean isSelected, int row, int column)  
    {  
        text = (value == null) ? "" : value.toString();  
        editButton.setText( text );  
        return editButton;  
    }  

    public Object getCellEditorValue()  
    {  
        return text;  
    }  

    public void actionPerformed(ActionEvent e)  
    {  
        fireEditingStopped();  
        System.out.println( e.getActionCommand() + " : " + table.getSelectedRow());  
    }  
}

No meu código eu chamo ela e ela add os botões:

O Problema é que ele adiciona os botões, mas não poem texto nenhum, e eu clico nos botões, não acontece nada :S

Alguma solução?

1 Resposta

P

Opa, consegui resolver o problema de clicar e nada acontecer, era só colocar a coluna como editavel.

E consegui resolver o problema do texto no botão.

No lugar de:

eu coloquei:

Vlw ;D

Criado 24 de setembro de 2012
Ultima resposta 24 de set. de 2012
Respostas 1
Participantes 1