Boa noite pessoal,
Criei uma Jtable que tem uma coluna com JCheckBox, só que eu não consigo clicar nessa JCheckBox. Alguem poderia me ajudar.
O codigo é esse.
Cria a check box
class CustomCheckBox extends JCheckBox implements TableCellRenderer {
private static final long serialVersionUID = 1L;
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column){
if( value instanceof JComponent){
return (JComponent)value;
}
else
{
return null;
}
}
}
Monta a tabela
/* MONTA TABELA */
private void DisplayData(List<Servicos>ProductsList){
try{
DefaultTableModel aModel = new DefaultTableModel() {
/**
*
*/
private static final long serialVersionUID = 1L;
//setting the jtable read only
@Override
public boolean isCellEditable(int row, int column) {
return false;
}
};
//setting the column name
Object[] tableColumnNames = new Object[2];
tableColumnNames[0] = "Serviços";
tableColumnNames[1] = "";
aModel.setColumnIdentifiers(tableColumnNames);
if (ProductsList == null) {
this.table_FuncioanrioDisponiveis.setModel(aModel);
return;
}
Object[] objects = new Object[2];
ListIterator<Servicos> lstrg = ProductsList.listIterator();
while (lstrg.hasNext()) {
CustomCheckBox check = new CustomCheckBox();
Servicos newcus = lstrg.next();
//CustomLabel12 label = new CustomLabel12();//
objects[0] = newcus.getDescServico();
objects[1] = check;
aModel.addRow(objects);
}
//binding the jtable to the model
this.table_FuncioanrioDisponiveis.setModel(aModel);
}
catch (Exception e) {
e.printStackTrace(); // TODO: handle exception
}
}
}
cria a JTable
[code]
private JTable getTable_FuncioanrioDisponiveis() throws Exception {
if (table_FuncioanrioDisponiveis == null) {
table_FuncioanrioDisponiveis = new JTable();
ServicosDAO dao = new ServicosDAO();
List<Servicos> consultarMovtoFuncionario = dao.consultaServico("select * from servicos");
listaServicos = consultarMovtoFuncionario;
DisplayData(listaServicos);
TableColumn column = table_FuncioanrioDisponiveis.getColumnModel().getColumn(1);
column.setCellRenderer(new CustomCheckBox());
column.setPreferredWidth(-8);
table_FuncioanrioDisponiveis.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
//Verificando se o botão direito foi pressionado
if ((me.getModifiers() & MouseEvent.BUTTON3_MASK) != 0) {
JPopupMenu menu = new JPopupMenu();
JMenuItem cliqueme = new JMenuItem("Atualizar");
cliqueme.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
try {
atualizaTabela();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
menu.add(cliqueme);
menu.show(table_FuncioanrioDisponiveis, me.getX(), me.getY());
}
}
});
}
return table_FuncioanrioDisponiveis;
}
[/code]
Ja tentei da um setEnabled mais não deu certo.
Obrigado.