private synchronized void albumsTableValueChanged(javax.swing.event.ListSelectionEvent evt) {
        Logger.getLogger(MainInterface.class.getName()).entering(MainInterface.class.getName(), "albumsTableValueChanged");
        album = null;
        if (booksDirectory == null) {
            return;
        }
        int selectedRow = albumsTable.getSelectedRow();
        if (!evt.getValueIsAdjusting() && selectedRow != -1) {
            stopThreadedPreviewLoaderID.add(threadedPreviewLoader.getId());
            while (threadedPreviewLoader.isAlive()) {
                try {
                Thread.sleep(1);
                } catch (InterruptedException ex) {
                Logger.getLogger(this.getClass().getName()).log(Level.SEVERE, null, ex);
                }
            }
            album = new File(serie.toString() + File.separator + albumsTable.getValueAt(selectedRow, 0).toString() + albumsTable.getValueAt(selectedRow, 1).toString());
            Logger.getLogger(MainInterface.class.getName()).log(Level.INFO, "Album \"{0}\" Selected", album);
            threadedPreviewLoader = new PreviewImageLoader();
            threadedPreviewLoader.start();
        }
        Logger.getLogger(MainInterface.class.getName()).exiting(MainInterface.class.getName(), "albumsTableValueChanged");
    }