publicvoidactionPerformed(ActionEvente){Queue<String>fila=newLinkedList<String>();if(e.getSource()==b1){fila.offer(Tx1.getText());System.out.println(fila);Tx2.setText("1");// aqui está o problema, não consigo efetuar a soma neste campo, toda vez que incluo um nome na fila, como faço?}
Não entendi sua duvida, nessen trecho de código vc ta setando o valor 1 para o Tx2. Aonde está a soma?
Bruno
R
rjrider
Corvão,
Fiz um teste para ver se retorna alguma coisa neste campo Tx2, mas não sei como incluir uma soma todas as vezes eu incluir um nome na fila, será que deu para entender?
Valeu,
Ramon
R
rissato
entao vc tem q pegar o valor do Tx2, parsear para algum tipo numérico, e só depois somar e devolver o valor para o campo:
double total = Double.parseDouble(tx2.getText());
double valor = Double.parseDouble(tx1.getText());
total +=valor;
tx2.setText(total);
é isso?
R
rjrider
Olá, Rissato
Implementei este trecho em meu programa, mas ele não funcionou apareceu uma mensagem de erro:
110: setText(java.lang.String) in javax.swing.text.JTextComponent cannot be applied to (double) Tx2.setText(total);
Grato,
Ramon
V
vitorpatriarcha
double total = Double.parseDouble(tx2.getText());
double valor = Double.parseDouble(tx1.getText());
total +=valor;
tx2.setText( String.valueOf(total) );
Converta o teu valototal para String.
tx2.setText(String.valueOf(total));
R
rjrider
Obrigado, Vitor
Vou testar!
Ramon
R
rjrider
Olá, vitor
usei o código abaixo, mas não funcionou, não efetua a soma; o mais estranho disso tudo é que todas as vezes que clico no botão b1 ele parece limpar os elementos da fila(fila) e então ao solicitar o total ele não retorna, dá erro!
if(e.getSource()==b1)
{
fila.offer(Tx1.getText()); // adicionar elemento na filaJOptionPane.showMessageDialog(null,fila,“teste”,1);// quero listar todos os elementos contidos na fila, mas ao clicar várias vezes ele só lista 1 elemento, o atual.
Integertotal=Integer.parseInt(Tx2.getText());Integervalor=Integer.parseInt(Tx1.getText());total+=valor;Tx2.setText(String.valueOf(total));// aqui deveria ser a soma de todos o elementos da fila, mas não consigo implementar.
}
Grato pela atenção,
Ramon
R
rjrider
Bom dia,
será que alguém pode verificar este código acima? não estou encontrando o erro!!!
Grato,
Ramon
M
Mantu
Eu acho que estou vendo um primeiro problema aí com a seguinte linha:
Queue<String>fila=newLinkedList<String>();
Perceba que vc colocou essa linha dentro do método actionPerformed(). Isto quer dizer que, toda hora que vc clicar no botão, vai ser criada uma nova fila, perdendo assim possíveis valores anteriores.
O ideal seria você deixar esta fila ser um campo da classe e não dar new emcima desse campo dentro do actionPerformed()
Vou tentar fazer uma simulação desse seu problema aqui e, conseguindo, eu posto aqui, ok?
M
Mantu
Olha aí, fiz um exemplo pronto pra rodar.
Dê uma olhada e vê se te ajuda em algo.
R
rjrider
Mantu,
obrigado ficou jóia!!!
Só para finalizar, o programa Painel_Recepção é onde vc inclui o nome de um paciente na fila e com sua ajuda consegui fazer com que efetue o tamanho(soma) da fila.
Então, criei outro programa painel_doenças em que faço a consulta(médico) e a dúvida é a seguinte: como faço para que este painel_doenças lê a fila do painel_recepção? tentei fazer mas não consegui, afinal vc me explicou que se eu instanciar a fila neste painel_doenças significa que vou cria tudo novamente, certo? E como faço para que ele possa ler os dados da fila criada em painel_recepção?
Grato,
Ramon
obs:. será que deu para entender?
M
Mantu
Faça com que a classe Painel_Recepcao tenha um método que retorne justamente a fila em questão.
Que tal?
R
rjrider
Mantu,
não consegui entender? O painel _Recepção é onde foi criado a variável fila e quero usar em outro painel, sem que seja criado uma nova variável, pq vc me explicou que ao criar uma nova ele apaga tudo, correto?
qual é o comando que devo escrever neste trecho abaixo, que é uma parte de outro painel:
if(e.getSource()==b2)
{
//chamaonomedafila
fila2.offer(Tx1.getText());// adicionar elemento na filaSystem.out.println(fila2);Tx3.setText(String.valueOf(fila2.size()));// quero usar a vaiável fila2 para consulta.Tx1.setText("");JOptionPane.showMessageDialog(this,"Paciente fulano de tal");
}
como devo proceder?
valeu,
Ramon
M
Mantu
Deixa eu ver se entendi:
Painel_Recepcao é uma classe e Painel_Doencas é outra classe, certo?
R
rjrider
Isso mesmo!!!
R
rjrider
Tem alguma forma de usar a vaiável fila em outra classe(painel_doencas), pois sei que a variável fila está na classe Painel_Recepcao? Apenas quero listar o 1º elemento na campo Tx1 da classe painel_doencas!
if(e.getSource()==b2)
{
fila2.peek(Tx1.getText());System.out.println(fila2);Tx3.setText(String.valueOf(fila2.size()));Tx1.setText("");JOptionPane.showMessageDialog(this,"Paciente fulano de tal");
}
R
rjrider
Alguém pode me dar um help???
Grato,
Ramon
M
Mantu
Experimenta fazer ago assim:
Sua classe Painel_Recepcao teria que, de alguma forma, disponibilizar a fila. A forma mais trivial de se fazer isso é criar um método público que retorne a fila, ou uma cópia da fila:
Agora, antes de continuar com essa solução, preciso que vc me esclareça mais algumas dúvidas:
1)Como são os construtores da classe Painel_Recepcao?
2)Você cria uma instância de Painel_Doecas “de dentro” da classe Painel_Recepcao?
R
rjrider
Mantu,
qual é o seu e-mail, assim posso lhe mandar o programa, ok?