Perché nella classe estendi JFrame
codice:
public class MainWindow extends JFrame

e poi lo dichiari nuovamente nel metodo?
codice:
private void createGui() {
        mainFrame = new JFrame("Lista directory");
non devi dichiararla se la estendi nella classe.

Puoi fare semplicemente:
codice:
private void createGui() {
        super("Lista Directory");
        ....
        setSize(new Dimension(700, 700));
        setLayout(new BorderLayout());
        ....
        ....
}
Ciao.