Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pablo Honey

Problema c/ Metodo e Retorno.

Recommended Posts

Bom dia, estou com um problema no retorno de um metodo em java. Tenho um classe Vendas.java, onde que ao clicar num botão ele chama outra classe chamada ListaClienteVenda.java - essa classe é responsavel por fazer uma consulta no banco de dados e listar para o usuario o nome procurado, ao clicar na linha onde esta listado o codigo do cliente e nome do cliente e retornado para a Classe Vendas.Java esses dados e esses dados deveriam ser setados em dois jTextField (jTextField1 e JTextField2), porém isso não acontece. Se alguem puder ajudar desde já agradeço, pois fiquei um dia e meio agarrado nessa parte do código pois não sei setar os dados na minha classe Vendas.java

 


public class Vendas extends.javax.swing.JFrame { 
Conexao db = Conexao (); 
public Vendas (){ 
initComponents(); 
} 
public void Receber(String cod, String nome){
 jTextField1.setText(cod); JTextField2.setText(nome); 
// aki verifiquei se os valores estavam chegando ao clicar System.out.println(nome); 
} 
//aki o botão que ira acionar o meu evento private void jButtonBuscarActionPerformed(java.awt.event.ActionEvent evt){ 


ListaClienteVenda xlc = new ListaCliente Venda(); xlc.show(); 

//como posso chamar o metodo Receber aki dentro??? 

} }

Agora a minha Classe ListaClienteVenda.java

 

 

public class ListaClienteVenda extenx javax.swing.JFrame { 
Conexao db; 
Vendas mandar; 
public ListaClienteVenda(){
initComponents(); 
db = new Conexao(); 
mandar = new Vendas(); 
} 

//Evento que ao clicar na linha obtem os valores e envia para a classe Vendas.java 

private void jTable4MouseClicked(java.awt.event.MouseEvent evt) {
if(evt.getClickCount()>=0){ 
  if(evt.getClickCount()>=0{ 
    int row = jTable4.getSelectedRow(); 
     String codigo = (String)jTable4.getValueAt(row,0); 
     String nome = (String)jTable4.getValueAt(row,1); 
     mandar.Receber(codigo,nome); 

} } } }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa beleza?

Então, na sua class ListaVenda você não deve criar uma nova instancia de Vendas, repare que no seu codigo para enviar os valores para a classe Vendas, você chama o método Receber de um outro objeto Vendas, porq sempre que você criar o obj de ListaClienteVenda dentro da classe Vendas, ele automaticamente criará uma outra classe vendas...confuso??

 

Basicamente estou dizendo que o seu erro está aqui...

 

public class ListaClienteVenda extenx javax.swing.JFrame { 
Conexao db; 
Vendas mandar; 
public ListaClienteVenda(){
initComponents(); 
db = new Conexao(); 
mandar = new Vendas(); // você está criando outro objeto vendas, em vez de referenciar quem o chamou 
} 

entao o que você devia fzr é receber a referencia do objeto vendas que cria o listaclientevendas pelo construtor, ou seja,

ListaVendasCliente xlc = new ListaVendasCliente(this);

e na classe ListaClienteVenda você muda o construtor para:

public class ListaClienteVenda extenx javax.swing.JFrame { 
Conexao db; 
Vendas mandar; 
public ListaClienteVenda(Vendas meuChamador){ // olha aí o parametro
initComponents(); 
db = new Conexao(); 
mandar = meuChamdor; // agora sempre que você chamar o metodo Receber, ele vai chamar o metodo do Vendas OBS: isso se o você tiver ouvindo direito o evento do JTable
} 

Faça os testes, qualquer dúvida posta aí...

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa beleza?

Então, na sua class ListaVenda você não deve criar uma nova instancia de Vendas, repare que no seu codigo para enviar os valores para a classe Vendas, você chama o método Receber de um outro objeto Vendas, porq sempre que você criar o obj de ListaClienteVenda dentro da classe Vendas, ele automaticamente criará uma outra classe vendas...confuso??

 

Basicamente estou dizendo que o seu erro está aqui...

 

public class ListaClienteVenda extenx javax.swing.JFrame { 
Conexao db; 
Vendas mandar; 
public ListaClienteVenda(){
initComponents(); 
db = new Conexao(); 
mandar = new Vendas(); // você está criando outro objeto vendas, em vez de referenciar quem o chamou 
} 

entao o que você devia fzr é receber a referencia do objeto vendas que cria o listaclientevendas pelo construtor, ou seja,

ListaVendasCliente xlc = new ListaVendasCliente(this);

e na classe ListaClienteVenda você muda o construtor para:

public class ListaClienteVenda extenx javax.swing.JFrame { 
Conexao db; 
Vendas mandar; 
public ListaClienteVenda(Vendas meuChamador){ // olha aí o parametro
initComponents(); 
db = new Conexao(); 
mandar = meuChamdor; // agora sempre que você chamar o metodo Receber, ele vai chamar o metodo do Vendas OBS: isso se o você tiver ouvindo direito o evento do JTable
} 

Faça os testes, qualquer dúvida posta aí...

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Giovanni Ritchie, você é o cara, sou seu fã http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Eu até tinha desistido de pedir ajuda nos forúns, tinha feito outro forma de buscar os nomes dos clientes, feio só a gambiarra, e você matou o problema de primeira, até o meu Professor que por sinal chama Giovanni tb, achou confuso o que eu queria, fazer e somente um construtor resolveu o problema que tirou dias de sono.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Deus te abençoe sempre e obrigado pela ajuda, não vou esquecer esse problema nunca mais na minha vida. rsrsrs...Aproveitando e não abusando de sua boa vontade, você conhece alguma link que trata de calculo com linhas e colunas numa jTable, já pesquisei, mas material de qualidade tá complicado, tem uma duvida aki outra acola. Tipo tenho uma tabela que ao inserir um produto, vou fazer da mesma forma que você ensinou agora para produto, vou ter o codigo, produto, preço. Ai na proxima celula vou digitar a quantidade e na proxima será o total multiplicação automatica do preço * quantidade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Pablo, blza??

Que bom que ajudou, a gente ta aqui pra isso, compartilhar e compartilhar. Bem não entendi muito bem a sua segunda dúvida. você está inserindo os dados diretamente no JTable? ou seja, está usando um JTable com células editaveis?

 

Outra dica, ao trabalhar com JTables procure criar sempre os seus TableModel, você pode extender AbastractTableModel, aqui nesse link você pode aprender mais sobre JTable http://www.guj.com.br/article.show.logic?id=147

 

http://www.guj.com.br/article.show.logic?id=140

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa Pablo, blza??

Que bom que ajudou, a gente ta aqui pra isso, compartilhar e compartilhar. Bem não entendi muito bem a sua segunda dúvida. você está inserindo os dados diretamente no JTable? ou seja, está usando um JTable com células editaveis?

 

Outra dica, ao trabalhar com JTables procure criar sempre os seus TableModel, você pode extender AbastractTableModel, aqui nesse link você pode aprender mais sobre JTable http://www.guj.com.br/article.show.logic?id=147

 

http://www.guj.com.br/article.show.logic?id=140

 

Abraço

 

Giovanni bom dia. Eu ja li a respeito que criar o proprio Table é melhor, e deixar de lado o defautl, porém iniciei o meu todo no Default e pretendo terminar esse projeto para que eu possa estudar calmamente, pq é complicado e ao mesmo tempo não é complicado tabelas e java. Quero aprender de forma correta, eu acho que o meu código o segundo que tive que desenvolver tá cheio de gambiarra rsrsrs. Ai coloquei a imagem pra solicitar sua opinião. Na primeira tabela aparece listado o nome que pesquisei, ai clico na linha selecionada e vou no botao inserir, ai aparece na tabela abaixo, o codigo, o nome, e o valor... Tô preso em como devo proceder para inserir um valor em quantidade e atualizar automaticamente o meu valor. Se você puder mim indicar um caminho em como resolver irei pesquisar a fundo. Obrigado :D

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. blza??

Nesse caso você gostaria que ao selecionar um determinado produto, depois de clicar em inserir, fosse fornecido a quantidade e automaticamente na tabela abaixo apareceria a quantidade e o total daquele produto?

 

Bem se for isso, você pode fzr o seguinte: ao clicar no botao inserir você solicita via ao Dialog( pode ser pre-empacotados do JOPtionPane ) a quantidade desejada, depois disso é só você calcular qtd*preco do produto, agora como você vai fzr isso aparecer depende de como você está fazendo p carregar os dados no segundo JTable, talvez se você postasse aqui fosse melhor.

 

Agora se você quiser que a quantidade fosse colocada diretamente na celula do JTable, você vai precisar tornar ela editavel, e capturar o evento que é disparado kdo ocorre alguma alteração no JTable, se não me engano é o tableChanged, só dar uma olhada na API.

 

Aqui vai um link que pode te auxiliar, espero q ajude, tem bastante coisa sobre JTable:

http://www.arquivodecodigos.net/arquivo/dicas_truques_categoria2.php?linguagem=2&categoria1=7&categoria2=10

 

Trabalhar com JTable é meio chato em relação outros componentes, sempre q for desenvolver um projeto usando ele você vai ter q consultar a API, artigos e tudo mais, e com o tempo você vai se habituando com as necessidades mais comuns..

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa.. blza??

Nesse caso você gostaria que ao selecionar um determinado produto, depois de clicar em inserir, fosse fornecido a quantidade e automaticamente na tabela abaixo apareceria a quantidade e o total daquele produto?

 

Bem se for isso, você pode fzr o seguinte: ao clicar no botao inserir você solicita via ao Dialog( pode ser pre-empacotados do JOPtionPane ) a quantidade desejada, depois disso é só você calcular qtd*preco do produto, agora como você vai fzr isso aparecer depende de como você está fazendo p carregar os dados no segundo JTable, talvez se você postasse aqui fosse melhor.

 

Agora se você quiser que a quantidade fosse colocada diretamente na celula do JTable, você vai precisar tornar ela editavel, e capturar o evento que é disparado kdo ocorre alguma alteração no JTable, se não me engano é o tableChanged, só dar uma olhada na API.

 

Aqui vai um link que pode te auxiliar, espero q ajude, tem bastante coisa sobre JTable:

http://www.arquivodecodigos.net/arquivo/dicas_truques_categoria2.php?linguagem=2&categoria1=7&categoria2=10

 

Trabalhar com JTable é meio chato em relação outros componentes, sempre q for desenvolver um projeto usando ele você vai ter q consultar a API, artigos e tudo mais, e com o tempo você vai se habituando com as necessidades mais comuns..

Abraço

 

 

Giovanni, muito obrigado pela ajuda cara, graças a você estou quase finalizando o meu trabalho, valeu mesmo http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.