Banco de dados

Oi gente! tudo bom? Sou estudante de ciência da computação e estou a uns 3 dias tentando fazer uma atividade mas estou me embolando toda e não consigo desenvolver de jeito nenhuum. Estava usando o JOptionPane para fazer o menu e dar entrada de dados, mas acho que não estou conseguindo desenvolver o programa corretamente. Poderiam me ajudar?:

Objetivo: Crie um projeto Java para efetuar CRUD de boletos. Faça o menu abaixo:

  1. Incluir Boleto (com todos os dados da figura abaixo)
  2. Alterar Boleto
    a. Consultar pelo número do documento
    b. Consultar pelo nosso número
  3. Consultar Boletos
    a. Consulta por banco
    b. Consulta pelo nosso número
    c. Consulta por Cedente
    d. Consulta por Sacado
    e. Consulta por intervalo de data do documento
    f. Consulta por intervalo de vencimento
    g. Consulta por intervalo de valor do documento
    h. Consulta por intervalo de desconto
    i. Consulta por intervalo de multa
    j. Consulta por intervalo de outros acréscimos
    k. Consulta por intervalo de valor cobrado
  4. Excluir Boleto pelo número
    a. Pelo Número
    b. Por Sacado
    c. Por Vencimento
    d. Por Valor do Documento
    e. Por Valor Cobrado
  5. Listagem de Boletos por intervalo de número (exibir no formato da imagem abaixo
  6. Sair

Observações:

  1. Utilize o paradigma de Orientação a Objetos
  2. Através da abstração, separe o código em diversas classes (de mesmo conteúdo)
  3. Utilize ArrayList para armazenar os objetos das classes desenvolvidas. Todas as
    operações do CRUD devem ser realizadas nos respectivos ArrayList´s.
  4. Utilize Tratamento de Exceções em blocos de acordo com sua análise (será critério de
    avaliação do trabalho).
  5. O valor cobrado deve ser calculado automaticamente, de acordo com a fórmula:
    valor cobrado = (valor do documento + multa + outros acréscimos ) - desconto –
    outras deduções
  6. Número de documento deve ser único (sem duplicidade)
  7. Nosso número deve ser único (sem duplicidade)
  8. Lançar somente Cedentes e Sacados previamente cadastrados na lista.

tem coisa demais ai para voce fazer tudo com JOptionPane. Tem que fazer mesmo assim? talvez seja melhor voce fazer no console. criando um menu de 1 a 9 e cara opcao do menu faz uma coisa, e voce usa o System.in para dar entrada pelo proprio console.

Pois é @Karen_Christina, concordo com o @thimor. Você tem que usar interface gráfica ou pode usar o console?

Os dados, quais são eles?