Como editar jtable?[resolvido]

9 respostas
P
ola, eu ja li varios topicos aqui do guj que falam sobre jtable,mas não encontrei nada que fale a respeito de editar ela=[ tipo eu li sobre o metodo
isCellEditable(row, column);
mas não entendi como usa-lo. Tipo eu criei uma jtable que recebe valores do banco para ser preenchida ate ai tudo bem o problema é que eu não consigo deixar minha jtable editavel nem mesmo o meu scroll funciona nesta tabela.. Alguém pode me ajudar a encntrar o erro? Obrigada meu metodo é bem semelhante a este exemplo aki do guj
private void geraTabela()
	{
		try
		{
			Vector<String> cabecalho = new Vector<String>();
			Vector<Vector> linhas = new Vector<Vector>();

			resultado = comando.executeQuery("select disciplina,modulo from nota where rc='"+ t0.getText() +"'");
			resultado.next();
			ResultSetMetaData rsmd = resultado.getMetaData();
			for( int i = 1; i <= rsmd.getColumnCount(); ++i )
				cabecalho.addElement( rsmd.getColumnName( i ) );
			do
			{
				Vector<Object> linhaAtual = new Vector<Object>();
				for ( int i = 1; i <= rsmd.getColumnCount(); i++ )
				{
					switch( rsmd.getColumnType(i))
					{
					case Types.VARCHAR:
						linhaAtual.addElement(resultado.getString(i));break;
					case Types.TIMESTAMP:
						linhaAtual.addElement(resultado.getDate(i));break;
					}

				}
				linhas.addElement(linhaAtual);

			}
			while (resultado.next() );
			table = new JTable( linhas, cabecalho );
			JScrollPane scroller = new JScrollPane( table );
			scroller.setVisible(true);
			scroller.setBounds(20, 150, 300, 100);
			getContentPane().add(scroller, null);

		}
		catch (SQLException erro) {
			erro.printStackTrace();
		}
	}

9 Respostas

P

tentei usar o isCellEditable mas nao ta dando certo tentei algo assim

while (resultado.next() ); table = new JTable( linhas, cabecalho ); table.isCellEditable(0, 0); table.isCellEditable(1, 1); table.isCellEditable(2, 2); table.isCellEditable(3, 3); JScrollPane scroller = new JScrollPane( table );
mas nao ta funcionando
=[
segue em anexo o print da minha jtable
obg


H

O isCellEditable é um metodo da table que retorna um boolean dizendo se ela é editavel ou não.

O que vc fez foi só chamar este metodo, ele não muda nada, só diz se é ou não.

Engraçado é que o DefaultTableModel retorna true para esse metodo, ela é editavel a menos que se faça algo para não ser

Não existe nenhum componente acima dessa table, algum componente transparente, algo que impossibilite o mouse de chegar a table?

Vc consegue selecionar as celulas?

V

Primeiro de tudo, [size=18][color=red]não use o DefaultTableModel[/color][/size].

Aqui tem um exemplo de TableModel editável:
http://www.guj.com.br/java/132698-tablemodel-editavel#714736

P

oi heroijapa
na verdade nao consigo selecionar as celulas da tabela quando eu gero a mesma parece que ela é o print da table original pq tipo nem a scroll funciona…
ah eu acho q nao tm nenhum componente q impossibilite o mouse de chegar a jtable bem pelo menos eu acho q nao fiz isto,como posso saber se fiz?
sabe cmo posso resolver isto?
obg

P

consegui arrumar gente!!!
heroijapa tu tinhas razao o problema era q eu tava add um painel,a scroll no getcontenpane e tipo este painel meio que ficava por cima da tela de forma transparente como tu falaste anteriormente…
ah vini obg pelas dicas tmbm
=]

H

Eu nunca usei essas janelas internas, faça um teste separado da sua aplicação principal com a tabela.

O erro pode ser alguma janela que vc tenha criado como modal que impede a troca do foco para a tabela, mas isso é só chute.

P

era o painel q estava atrapalhando mas consegui arrumar,tipo tirei ele e adicionei os itens no meu internalframe
bah mto obg msm!
=]

V

Paty, cuidado com a ilusão de funcionamento do DefaultTableModel. Apesar de você até “fazer funcionar” com ele, o código fica extremamente complicado de manter, e pouquíssimo personalizável.

O ideal é você aprender direito como o JTable funciona, e para isso, você deve estudar como fazer seu próprio TableModel, filho de AbstractTableModel. Se quer um tablemodel fácil e poderoso, considere fortemente a possibilidade de usar o que está no projeto Towel.

I

Muito obrigado, consegui exibir a Jtable com as imagens, mas quando a alteração do meu ArrayList e vou exibir novamente, não exibe, apenas o cabeçário da Jtable que aparece.

Criado 15 de janeiro de 2011
Ultima resposta 18 de fev. de 2015
Respostas 9
Participantes 4