esse codigo acima quando eu clico em alguma linha da tabela ele aparece na tela Cliquei e tenho quase que certeza absoluta que sera apartir dai que irei implementar o metodo de excluir! obrigado pela atencao!
se algueim tiver algum exemplo fico agradecido pois sou jovem ainda na area da programacao ;/ mas to batalhando!
moacirjava
Esse é um exemplo de código de uma aplicação que fico brincando nos fins de semana...
if(evt.getClickCount()==2){//Pega a linha referente ao codigo a coluna eh sempre 0(zero).intlinha=jtPesquisarDizimistas.getSelectedRow();//Pega o dado de dentro da celula da tabela.Stringdado=(String)jtPesquisarDizimistas.getValueAt(linha,1);//Pega o codigo e...Stringcodigo=String.valueOf(jtPesquisarDizimistas.getValueAt(linha,0));//converte pra inteiro.intcod=Integer.parseInt(codigo);//Pergunta para o usuario.intestado=JOptionPane.showConfirmDialog(null,"Dado: "+dado+"\n Codigo: "+cod,"Deseja carregar o cadastro?",JOptionPane.YES_NO_OPTION);System.out.println("Valor do estado: "+estado);
Na linha onde coloco getValue(linha,1) esse 1 é por causa que me interessa é só o conteúdo da primeira coluna. Com os dados da tabela eu pego o código do meu dado, ai tendo esse código vc faz o que quiser.
Acho que com isso vc já consegue se virar mas qualquer problema posta ai.
V
VagnerMG
Pegue o elemento selecionado através do método nome_tabela.getSelectedIndex().
Feito isso , posicione o seu RS com o método rs.absolute(indice_tabela + 1).
Esse + 1 aí é porque a primeira linha da tabela tem o índice 0.
Agora você consegue o id do seu registro selecionado, por exemplo rs.getInt(“idTabela”), e aí é só chamar o seu método de exclusão!
Quanto ao evento, adicione um MouseClicked a tabela e veja se o usuário deu dois cliques
Blz… consegui selecionar a linha , mas como faço para mim com a linha selecionada se eu der ação a um botao para excluir no banco ele excluir… isso que nao entendi ainda!
ken420
pessoal veja como fico fis varias modificaçoes mas ainda nada ta dando nullpointer no executeSql ;/
privatevoidtbClientesLinhaSelecionada(JTabletb){if(tb.getSelectedRow()!=-1){intlinha=tb.getSelectedRow();try{Stringsql="select * from produto Where codigo = "+(tb.getValueAt(linha,1));con_Tabela.executeSQL(sql);con_Tabela.resultset.first();Stringnome="Deletar o produto : "+con_Tabela.resultset.getString("nome")+" ?";intopcao_escolhida=JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);if(opcao_escolhida==JOptionPane.YES_OPTION){sql="DELETE FROM produto Where codigo = "+(tb.getSelectedRow()!=-1);intconseguiu_excluir=con_Tabela.statement.executeUpdate(sql);if(conseguiu_excluir==1){JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");}}elsereturn;}catch(SQLExceptionerro){JOptionPane.showMessageDialog(null,"Erro a tentar excluir o registro..."+erro);}}else{tfNomeF.setText("");tfCodigoF.setText("");}}oerroapontaaqui!!!con_Tabela.executeSQL(sql);
V
VagnerMG
Cara, nem sempre a posição do seu getSelectedIndex() é igual a Id do seu registro no banco!
Por isso que te sugiro você pegar a linha selecionada e posicionar o seu resultset com ela. Aí sim, você vai pegar o Id do seu registro corretamente, aravés do resultSet.
Outra sugestão que eu te dou é separar suas classes corretamente, isto é , criar uma classe de acesso ao banco de dados, uma de aplicação e a outra sendo sua GUI!
Gui >> Aplicação >> Banco de dados
ken420
veja o que eu mudei e mesmo assim o erro persiste fis o que vc falou
Stringsql="select * from produto Where codigo = "+(con_Tabela.resultset.absolute(linha+1));con_Tabela.resultset.getInt("nome");con_Tabela.executeSQL(sql);
e continua dando o mesmo erro ainda estou fazendo algo errado?
V
VagnerMG
ken420:
veja o que eu mudei e mesmo assim o erro persiste fis o que vc falou
Stringsql="select * from produto Where codigo = "+(con_Tabela.resultset.absolute(linha+1));con_Tabela.resultset.getInt("nome");con_Tabela.executeSQL(sql);
e continua dando o mesmo erro ainda estou fazendo algo errado?
Olha só , você pode fazer isso!
con_Tabela.resultset.absolute(linha +1 ); String sql = “select * from produto Where codigo = “+(con_Tabela.resultset.getInt(“Codigo”))+”;”;
V
VagnerMG
Hoje eu fiz um exemplo bem parecido em um sistema que eu estou desenvolvendo!
Olha só como eu implementei!
privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){if(JOptionPane.showInternalConfirmDialog(this,"Excluir esta Venda ?","Pós Venda",JOptionPane.YES_NO_OPTION)==JOptionPane.YES_OPTION){try{this.rs.absolute(table.getSelectedRow()+1);//posicion1ando o resultSet na posição referente a selecionada na tabela//o método absolute posiciona o cursor no result na linha desejadarsItem=null;rsItem=Item.pesquisa(rs.getString("idVenda"),"idVenda");while(rsItem.next()){Pecapeca=newPeca(rsItem.getInt("idPeca"),rsItem.getInt("quantidade"));//fazendo o estorno para o estoquepeca.incrementaEstoque();Itemitem=newItem(rsItem.getInt("idItem"));item.exclui();System.out.println(rsItem.getString("idItem"));}Vendavenda=newVenda(rs.getInt("idVenda"));venda.exclui();while(table.getModel().getRowCount()!=0)/*Apagando todas as linhas da tabela table.getModel().getRowCount() retorna o numero de linhas da coluna*/model.removeRow(0);}catch(SQLExceptions){s.printStackTrace();}}}
ken420
veja só amigo, consegui atravéz deste metodo excluir o item no meu banco porem ta dando erros estranhos do tipo quando seleciono a opcao YES_OPTION e ele deleta o arquivo, depois que ele exclui o arquivo em qualquer lugar que eu clicar seja jTextField ou botoes, eu clico e ele pg se eu quero deletar todos os items da minha tabela linha por linha aparece a YES_NO_Option para mim escolher pq isso? e tambem para mim atualizar minha jtable depois que eu deleto o arquivo tenho que fexar a tela e abrila denovo para atualizar a jtable!
ken420
veja como ficou
try{con_Tabela.resultset.absolute(tb.getSelectedRow()+1);Stringsql="select * from produto Where codigo = "+(con_Tabela.resultset.getInt("Codigo"))+";";Stringnome="Deletar o produto : "+con_Tabela.resultset.getString("nome")+" ?";intopcao_escolhida=JOptionPane.showConfirmDialog(null,nome,"Exclusão ",JOptionPane.YES_NO_OPTION);if(opcao_escolhida==JOptionPane.YES_OPTION){sql="DELETE FROM produto Where codigo = "+(con_Tabela.resultset.getInt("Codigo"))+";";intconseguiu_excluir=con_Tabela.statement.executeUpdate(sql);if(conseguiu_excluir==1){JOptionPane.showMessageDialog(null,"Exclusão realizada com sucesso");}}elsereturn;}catch(SQLExceptionerro){JOptionPane.showMessageDialog(null,"Não localizou dados "+erro);}
nao sei pq depois que excluo um registro ele pede se eu quero excluir todos depois faz a pergunta de exclusao para todos registros
ken420
up
V
VagnerMG
Ken, para atualizar a tabela te sugiro você excluir todas as linhas da tabela e montar a tabela novamente!
Quanto a exclusão, não sei o que pode estar ocasioinando isso, acho que pode ser o seu evento!
Aonde você está adicionando o evento do mouse?! Deve ser na tabela e não no seu JFrame ok?