Desativar o botão Abrir no JFileChooser?

Eu estendi umJFileChooser e anulou oapproveSelection método para que quando um usuário escolhe um diretório inválido e, em seguida, clica no botão Abrir, uma mensagem de erro em umJOptionPane será mostrado. Mas eu quero fazer meuJFileChooser mais fácil de usar e tornar o botão Abrir desativado quando um usuário clica em um diretório inválido e, em seguida, torna-se reativado quando um usuário clica em um diretório válido. É possível personalizar meuJFileChooser ainda mais e ter acesso ao botão Abrir para que eu possa alterar o status do botão de acordo (possivelmente através de um ouvinte que ouve uma seleção de diretório)?

public class MyFileChooser extends JFileChooser {

  private final JFrame mainFrame;

  public MyFileChooser(JFrame mainFrame) {
    this.mainFrame = mainFrame;
    setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
  }

  @Override
  public void approveSelection() {
    if (/* directory is valid */) {
      super.approveSelection();
      return;
    }
    JOptionPane.showMessageDialog(mainFrame, "Invalid directory", "Error", JOptionPane.ERROR_MESSAGE);
  }

}

questionAnswers(3)

yourAnswerToTheQuestion