Problemas ao adicionar valor

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.

Sem%20t%C3%ADtulo

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");
                    }

                });

        }
    }

Sem%20t%C3%ADtulo


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;
        }
    });
}