Trabalhando com Datas em Java

Boa noite pessoal, estou com uma dificuldade em capturar uma determinada data em um campo formatado.
A questão é a seguinte como comparar esse campo que o usuário digitou com a data atual ( está parte da data atual é mais tranquila) vi que em java tem a Date e Calendar para fazer isso mas como comparar isso em um condicional em java.

Ex: 16/05/2018
ai usuário digitou: 20/05/2018 no campo formatado. O sistema deve exibir uma mensagem que não pode ser utilizado datas posteriores a atual, somente datas anteriores.

Em resumo: Como fazer esse comparativo de uma data que vem de um campo formatado( como mudar ele para um condicional) para compara com a data atual ou posterior. Sei que existem várias vídeos no youtube ou coisas do tipo, porém eles só explicam a forma de exibição da data em si. Não como fazer esse processo que quero realizar… Grato pela Atenção!!

@EnoqueBR
Criei os comandos dentro do código do próprio formulário só por fins didáticos, espero que ajude de alguma forma.
image

{

  public Form_FormatedField() {
    initComponents();
    initTestes();
}

private void initTestes() {
    fmData.addFocusListener(new FocusAdapter() {
        @Override
        public void focusLost(FocusEvent e) {
            testarData(fmData.getText());
        }
    });

    btTestar.addActionListener(event -> {
        testarData(fmData.getText());
    });
}

private void testarData(String data) {
    LocalDate hoje = LocalDate.now();
    boolean hojeAntes = hoje.isBefore(LocalDate.parse(fmData.getText(), DateTimeFormatter.ofPattern("dd/MM/yyyy")));
    if (hojeAntes) {
        JOptionPane.showMessageDialog(rootPane, "A data não pode ser superior a de hoje", "Data inválida", JOptionPane.INFORMATION_MESSAGE);
    }
}

}

1 curtida