Boa tarde pessoal,
Estou tentando colcocar uma checkBox dentro da minha JTable a partir do meu TabelModel, mas não consigo de maneira alguma, retorna sempre o valor true ou false, uo gera erro. Segue o código:
package jtables;
import funcionario.model.Funcionario;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
public class FuncionarioTableModel extends AbstractTableModel {
private List<Funcionario> funcionarios = new ArrayList<Funcionario>();
public void setFuncionarios(List<Funcionario> f) {
this.funcionarios = f;
}
@Override
public Class getColumnClass(int columnIndex) {
return Boolean.class;
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public String getColumnName(int col) {
switch (col) {
case 0:
return "Nome";
case 1:
return "Idade";
case 2:
return "Convenio";
default:
return null;
}
}
@Override
public int getRowCount() {
return funcionarios != null
? funcionarios.size()
: 0;
}
@Override
public Object getValueAt(int lin, int col) {
if (funcionarios != null && lin >= 0 && lin < funcionarios.size()) {
Funcionario f = funcionarios.get(lin);
switch (col) {
case 0:
return f.getNome();
case 1:
return f.getIdade();
case 2:
return getColumnClass(2);
case 3:
return null;
}
}
if (col == 1){
}
return null;
}
}
erro:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
at javax.swing.plaf.synth.SynthTableUI$SynthBooleanTableCellRenderer.getTableCellRendererComponent(SynthTableUI.java:667)
at javax.swing.JTable.prepareRenderer(JTable.java:5720)
at javax.swing.plaf.synth.SynthTableUI.paintCell(SynthTableUI.java:624)
at javax.swing.plaf.synth.SynthTableUI.paintCells(SynthTableUI.java:521)
at javax.swing.plaf.synth.SynthTableUI.paint(SynthTableUI.java:305)
at javax.swing.plaf.synth.SynthTableUI.update(SynthTableUI.java:234)
at javax.swing.JComponent.paintComponent(JComponent.java:752)
at javax.swing.JComponent.paint(JComponent.java:1029)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paint(JComponent.java:1038)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:567)
at javax.swing.JComponent.paintChildren(JComponent.java:862)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5131)
at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:278)
at javax.swing.RepaintManager.paint(RepaintManager.java:1225)
at javax.swing.JComponent.paint(JComponent.java:1015)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:21)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1778)
at java.awt.Window.paint(Window.java:3379)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:797)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:714)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:694)
at javax.swing.RepaintManager.access$700(RepaintManager.java:41)
at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1636)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:646)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:607)
at java.awt.EventQueue$1.run(EventQueue.java:605)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:616)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
CONSTRUÍDO COM SUCESSO (tempo total: 7 segundos)
Obrigado desde já.