Estou simulando uma forma de pagamento em um programa java que estou desenvolvendo para praticar .O programa abaixo deveria alterar o preço da consulta de acordo com o paciente selecionado que fez o agendamento para um determinado tipo de consulta. Porém, ele só esta adicionando o valor 100.
Método para modificar o valor
public void pacientesAgendados() {
AgendamentoDAO repositorio = new AgendamentoDAO();
for (Agendamento agendamento : repositorio.listarTodos()) {
cPacientes.addItem(agendamento.getPaciente().getNome());
if (agendamento.getMedico().getEspecialidade().equals("Cardiologista")) {
lblPreco.setText("R$142");
} else if (agendamento.getMedico().getEspecialidade().equals("Dermatologista")) {
lblPreco.setText("R$100");
} else if (agendamento.getMedico().getEspecialidade().equals("Neurologista")) {
lblPreco.setText("R$300");
}
}
coloca esses trechos
if(.....){}
dentro do evento ItemStateChanged
aí ficaria assim (toda vez q vc alterar o campo ele muda o textField:
jComboBox.addItemListener((ItemEvent e) -> {
if (e.getItem().toString().equals("oi")) {
System.out.println("oi selecionado");
}
});
Ainda não funcionou amigo. Fiz a implementação mas continua sem modificar o valor da consulta.
public void pacientesAgendados() {
AgendamentoDAO repositorio = new AgendamentoDAO();
for (Agendamento agendamento : repositorio.listarTodos()) {
cPacientes.addItem(agendamento.getPaciente().getNome());
cPacientes.addItemListener((ItemEvent e) -> {
if (agendamento.getMedico().getEspecialidade().equals("Cardiologista")) {
lblPreco.setText("R$142");
} else if (agendamento.getMedico().getEspecialidade().equals("Dermatologista")) {
lblPreco.setText("R$100");
} else if (agendamento.getMedico().getEspecialidade().equals("Neurologista")) {
lblPreco.setText("R$300");
}
});
}
}
E tbm vc tem que comparar o que vc quer com o valor selecionado, nao com o agendamento.getMedico().....
Cara, vou fazer um teste similar aqui, perai
Onde vc ta pegando a especialidade do medico? Eu fiz assim (mas comparando com um combobox)
private void listenerChangeSpeciality() {
cPacientes.addItemListener((ItemEvent e) -> {
switch (cEspecialidade.getSelectedItem().toString()) {
case "Cardiologista":
lblPreco.setText("R$142");
break;
case "Dermatologista":
lblPreco.setText("R$100");
break;
case "Neurologista":
lblPreco.setText("R$300");
break;
default:
break;
}
});
}