Jbutton dentro de um Jtable

0 respostas
lary_nascimento

Olá pessoal.
Já dei uma olhada na internet sobre isso, inclusive aqui no site, e o melhor que eu encontrei foi aqui no site, essa classe:

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());  
     }  
}

Só que eu já tentei alterar, já fuxiquei procurei e não sei como fazer pra usar o actionPerformed, e não consigo ele mudar o visual quando clica ou passa por cima.
Como é que eu altero isso?
Obrigada :D

Criado 24 de junho de 2013
Respostas 0
Participantes 1