Como fazer uma ComboxBox carregar ítens em outra ComboBox (As ComboBox devem puxar dados do Mysql)

Fala galera, estou fazendo um sistema de matrículas desktop usando JFrame, e estou tendo uma enorme dificuldade na parte de cadastrar aluno.
É o seguinte, tenho três ComboBox, uma é “Curso”, a outra é “Dias de Aula” e a última é “Horário”. Quando escolho um curso, a comboBox de baixo deve mostrar apenas os dias de aulas que estão cadastrados naquele curso; e quando escolho um dia de aula, a terceira comboBox de mostrar apenas os horários disponíveis para aquele dia de aula escolhido.
Consigo fazer todos os cursos cadastrados no Banco de Dados aparecerem na primeira comboBox, mas só consigo ir até aí, não sei o que fazer depois, não achei muito conteúdo na internet.
Espero ter conseguido explicar claramente a minha dúvida, e se alguém souber como continuar a partir daí, me ajude por favor. Agradeço

A poucos dias eu trabalhei com algo parecido,
No meu caso era um conjunto de combos
Propriedade–>Posto–>Bomba
vou descrever um trecho de como foi resolvido o problema aqui.

Na VIEW

ComboBoxUtils comboBomba = new ComboBoxUtils<>();
ComboBoxUtils comboPosto = new ComboBoxUtils<>();
List< ModAgCadPosto > listPosto;
List< ModAgCadBomba > listBomba;
private AgCadPostoDAO postoDAO = new AgCadPostoDAO();
private AgCadBombaDAO bombaDAO = new AgCadBombaDAO();

//métodos que carregam combos

private void carregarComboPosto(JComboBox propriedade, JComboBox posto, JComboBox bomba) {
    if (propriedade.getItemCount() != 0) {
        modeloPropriedade = (ModGeCadPropriedade) propriedade.getSelectedItem();
    } else {
        modeloPropriedade = new ModGeCadPropriedade();
    }
    listPosto = postoDAO.retornaListaPostoPropriedade(modeloPropriedade);
    comboPosto.carregarCombo(posto, listPosto);
    carregarComboBomba(posto, bomba);
}

private void carregarComboBomba(JComboBox posto, JComboBox bomba) {
    if (posto.getItemCount() != 0) {
        modeloPosto = (ModAgCadPosto) posto.getSelectedItem();
    } else {
        modeloPosto = new ModAgCadPosto();
    }
    listBomba = bombaDAO.retornaListaBombaPosto(modeloPosto);
    comboBomba.carregarCombo(bomba, listBomba);
    carregarCombustivel(jCBCombustivel, bomba);
}

Na DAO você precisa de um método que retorne uma lista de objetos consultados no banco de Dados

Método carregarCombo

public void carregarCombo(JComboBox combo, List<T> lista) {
    DefaultComboBoxModel comboModel = (DefaultComboBoxModel) combo.getModel();
    combo.setModel(comboModel);
    try {
        //assim como é feito numa JTable, temos o DefaultComboBoxModel que é o model do JComboBox
        //removendo todos os elementos do combo
        comboModel.removeAllElements();
        //percorrendo a lista para inserir os valores no combo
        for (int linha = 0; linha < lista.size(); linha++) {
            //adicionando a categoria no combo
            comboModel.addElement(lista.get(linha));
        }
    } catch (Exception e) {
        e.printStackTrace();
        comboModel.removeAllElements();
    }
}

Espero ter ajudado