Mudar classe de coluna em JTable [RESOLVIDO]

3 respostas
lucaslzl

Boa tarde,

gostaria de saber como mudo o tipo da coluna em um JTable, por exemplo:" tenho um String e quero que o tipo seja Boolean".

ArrayList<String[]> dados = new ArrayList<String[]>();  
		 String[] colunas = new String[] { "Nome", "Ler", "Atualizar", "Renomear", "Excluir"};  
		 
		 dados.add(new String[]{"Nome", "Ler", "Atualizar", "Renomear", "Excluir"});
		 
		//Diz quais colunas podem ser editadas
		 boolean [] edicao = {false, true, true, true, true};
		 
		 final TableModel modelo = new TableModel(dados, colunas, edicao);
		 
		
		//Cria a table
		tableAcesso = new JTable(modelo);
		tableAcesso.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tableAcesso.setAutoResizeMode (JTable.AUTO_RESIZE_OFF);
		
		//Coloca tamanho nas colunas
		tableAcesso.getColumnModel().getColumn(0).setPreferredWidth(200);
		tableAcesso.getColumnModel().getColumn(1).setPreferredWidth(100);
		tableAcesso.getColumnModel().getColumn(2).setPreferredWidth(100);
		tableAcesso.getColumnModel().getColumn(3).setPreferredWidth(100);
		tableAcesso.getColumnModel().getColumn(4).setPreferredWidth(100);
		
		
		//Cria o scrollPane
		JScrollPane jscrollPane = new JScrollPane(tableAcesso);  
		jscrollPane.setBounds(93, 22, 600, 115);
		panelAcesso.add(jscrollPane);

Obrigado

3 Respostas

ViniGodoy

Basta alterar o valor retornado no método getColumnClass do seu TableModel.

Se ainda está preso ao horrível DefaultTableModel, leia o texto ao lado do link em vermelho na minha assinatura.

lucaslzl

Mas, a primeira coluna tem que ser String, e outras 4 Boolean.

ViniGodoy

E daí?

Por que não dá uma lida na assinatura do método que te falei, ou lê o link que te indiquei, antes de retrucar?
Você veria que o método aceita como parâmetro o número da coluna, e que com base nele você diz qual é o tipo específico daquela coluna.

Criado 25 de dezembro de 2012
Ultima resposta 26 de dez. de 2012
Respostas 3
Participantes 2