Como colocar um check box numa celula de uma Jtable?
Eu queria criar uma coluna de check box!! e cada linha teria a sua! para selecionar registros retornados do banco!!
Abraxx
Como colocar um check box numa celula de uma Jtable?
Eu queria criar uma coluna de check box!! e cada linha teria a sua! para selecionar registros retornados do banco!!
Abraxx
O meu construtor estava ficando assim!!
A primeira coluna seria a de checkbox!
mas não consigo adicionar o elemnto!
public GerenciarTurmas(){
super("JTable");
Container c = getContentPane();
c.setLayout(new FlowLayout());
final DefaultTableModel modelo = new DefaultTableModel();
// constrói a tabela
JTable tabela = new JTable(modelo);
// Cria as colunas
modelo.addColumn("Incluir");
modelo.addColumn("Matricula");
modelo.addColumn("Nome");
modelo.addColumn("RG");
modelo.addColumn("Endereço");
modelo.addColumn("Telefone");
modelo.addColumn("Data Nascimento");
modelo.addColumn("Pai");
modelo.addColumn("Mãe");
modelo.addColumn("Turma");
//instancia classe e chama função
DaoAluno daoAluno = new DaoAluno();
Vector<Aluno> resultado = daoAluno.buscarTodos();
//adiciona colunas com vetor de instancias
for (Iterator<Aluno> iterator = resultado.iterator(); iterator.hasNext();) {
Aluno a = iterator.next();
String idckb=""+a.getMatricula();
Checkbox checkbox = new Checkbox(idckb);
modelo.addRow(new Object[]{c.add(checkbox),a.getMatricula(), a.getNome(), a.getRg(),a.getEndereco(), a.getTelefone(),a.getDatanasc(),a.getPai(), a.getMae(),a.getTurma()});
}tabela.setPreferredScrollableViewportSize(new Dimension(1000, 300));//dimensao tabela
TableCellRenderer tcr = new AlinharCentro();
//alinhando ao centro
tabela.getColumnModel().getColumn(0).setCellRenderer(tcr);
tabela.getColumnModel().getColumn(2).setCellRenderer(tcr);
tabela.getColumnModel().getColumn(4).setCellRenderer(tcr);
tabela.getColumnModel().getColumn(5).setCellRenderer(tcr);
tabela.getColumnModel().getColumn(8).setCellRenderer(tcr);
Como colocar um check box numa celula de uma Jtable?Eu queria criar uma coluna de check box!! e cada linha teria a sua! para selecionar registros retornados do banco!!
Abraxx
Fala, rodrigo!
Antes de mais nada, ABOMINE COM TODAS AS SUAS FORÇAS O USO DO DEFAULTTABLEMODEL. Além de você ser chato trabalhar com linha/coluna, você tem problemas na hora de dar manutenção no código, além do que você não trabalha diretamente com os objetos de domínio.
Recomendo FORTEMENTE que você dê uma lida no meu link da assinatura: como criar seu próprio TableModel.
Quando você criar o seu TableModel, para fazer uma coluna conter um CheckBox, é só setar a classe como Boolean:
public class SeuProprioTableModel extends AbstractTableModel {
private static final int colunaCheckbox = 0;
@Override public Class getColumnClass(int columnIndex) {
if (columnIndex == colunaCheckBox) return Boolean.class; // assim gera uma Checkbox.
return String.class;
}
}
Abraços!
certo! vou dar uma lida no seu tópico!
mas como que funciona esse
return Boolean.class;
não entendi bem!
sou novo em java… desculpe
certo! vou dar uma lida no seu tópico!
mas como que funciona essereturn Boolean.class;não entendi bem!
sou novo em java… desculpe
Quando você criar seu TableModel, haverá um método para ser sobrescrito: getColumnClass. Ele determina qual o tipo de dado que vai ser exibido na coluna determinada. Se você retornar String.class, será exibida, na coluna, um texto corrido. Se você retornar Boolean.class, será exibida uma Checkbox. E assim por diante!
Olá Nicolas !
Cara criei este método que você postou na minha classe onde crio minha tabela (GTable).
Mas agora preciso chama-lo no Form que criei ! Mas não sei como faço isso … Peço que me ajude por favor !
Olá Nicolas !
Cara criei este método que você postou na minha classe onde crio minha tabela (GTable).
Mas agora preciso chama-lo no Form que criei ! Mas não sei como faço isso … Peço que me ajude por favor !
MeuModelo modelo = new MeuModelo();
JTable tabela = new JTable(modelo);E voilà!
Fique com Deus! 