estou com um pequeno probleminha usando JTable. Tenho apenas 2 colunas nessa JTable, das quais a primeira é um CellEditor com uma JCheckBox dentro. O problema é que aparece apenas o texto na célula, e eu precisaria que aparecesse a checkbox em si, o gráfico dela.
Alguém tem idéia do que eu devo mudar para que apareça o gráfico da checkbox ao invés do valor?
Você não precisa de um CellEditor com um checkbox dentro para fazer um CheckBox no JTable. Essa é uma forma extremamente complicada de fazer algo que o JTable já faz de maneira trivial.
A forma mais simples é fazer seu TableModel retornar Boolean.class para a coluna em questão.
Se você não sabe o que é um TableModel, dê uma lida nos links da minha assinatura.
S
Stormqueen1990
ViniGodoy:
Você não precisa de um CellEditor com um checkbox dentro para fazer um CheckBox no JTable. Essa é uma forma extremamente complicada de fazer algo que o JTable já faz de maneira trivial.
A forma mais simples é fazer seu TableModel retornar Boolean.class para a coluna em questão.
Se você não sabe o que é um TableModel, dê uma lida nos links da minha assinatura.
Estou usando DefaultTableModel (que, por sinal, vi falarem aqui no fórum que não é exatamente a melhor coisa), só que não tenho muito a opção de mudar isso. Como fazer para que o model retorne Boolean.class nessa coluna?
V
ViniGodoy
Por que você não tem essa opção? Usar o DefaultTableModel dá muito trabalho, deixa o código mal estruturado, fere o modelo MVC, usa mais do que o dobro de memória e consome performance em processamento inútil.
Mas enfim, você pode criar um filho do DefaultTableModel.
DefaultTableModel model = new DefaultTableModel() {
@Override
public Class<?> getColumnClass(int column) {
if (column == 0) //Vamos deixar a primeira coluna com o checkbox
return Boolean.class;
return super.getColumnClass(column);
}
}
S
Stormqueen1990
Obrigada Vini!
Não posso mudar por questões de decisão, não tenho poder pra isso hehe.
Mas caso eu possa no futuro, usarei o ObjectTableModel da sua assinatura.
Valeu a ajuda!
Agora vou ter q ver como solucionar a questão do checkbox ficar dançando na coluna… hahahah
A
AssemblyXP
ViniGodoy:
Você não precisa de um CellEditor com um checkbox dentro para fazer um CheckBox no JTable. Essa é uma forma extremamente complicada de fazer algo que o JTable já faz de maneira trivial.
A forma mais simples é fazer seu TableModel retornar Boolean.class para a coluna em questão.
Se você não sabe o que é um TableModel, dê uma lida nos links da minha assinatura.
Vinni, pode me dar uma ajuda?
estou com o mesmo problema… coloco mais não aparece a check box na tabela…
publicvoidsetValueAt(Objectvalor,intlinha,intcoluna){PermissoesGETc=permissoes.get(linha);switch(coluna){case0:c.setId((Integer)valor);break;case1:c.setDescricao(valor.toString());break;case2:c.setAcesso(newBoolean((Boolean)valor));break;}fireTableDataChanged();}-------------DAOcomconexãoparasetarovalor..publicstaticPermissoesGETgetUsuarios(ResultSetrs)throwsSQLException{PermissoesGETc=newPermissoesGET();try{c.setId(rs.getInt("id"));c.setDescricao(rs.getString("descricao"));c.setAcesso(false);}catch(SQLExceptione){thrownewSQLException("Não foi possivel setar os valores para a lista!",e);}returnc;}