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
[code]private void geraTabela()
{
try
{
Vector cabecalho = new Vector();
Vector linhas = new 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();
}
}[/code]
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
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?
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
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
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
=]
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.
era o painel q estava atrapalhando mas consegui arrumar,tipo tirei ele e adicionei os itens no meu internalframe
bah mto obg msm!
=]
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.
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.