private void generateTable() {

        // Create column headers for JTable
        this.tableModel.addColumn("Absolute path");
        this.tableModel.addColumn("Filename");
        this.tableModel.addColumn("Duration");

        // Create JTable with the given column headers and properties
        this.tAddedMedia = new JTable(this.tableModel);
        this.tAddedMedia.getTableHeader().setReorderingAllowed(false);
        this.tAddedMedia.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
        this.tAddedMedia.setColumnSelectionAllowed(false);
        this.tAddedMedia.setCellSelectionEnabled(false);
        this.tAddedMedia.setRowSelectionAllowed(true);

        // Add created JTable to a new JScrollPane
        this.spAddedMedia = new JScrollPane(this.tAddedMedia);
        spAddedMedia.setPreferredSize(new Dimension(400, 100));

        // Enable Drag-and-Drop rows
        this.tAddedMedia.setDragEnabled(true);
        this.tAddedMedia.setTransferHandler(new TableTransferHandler());

        this.tAddedMedia.setDefaultRenderer(Object.class, new AddMediaTableCellRender());

        // Add JScrollPane to AddedMedia JPanel
        this.pAddedMedia.add(spAddedMedia, BorderLayout.CENTER);

        // Add mouse listener to table so we can adjust the number of showduration seconds
        this.tAddedMedia.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {

                // If user double clicked
                if (e.getClickCount() == 2 && !e.isConsumed()) {
                    e.consume();

                    // Get JTable
                    JTable thisTable = (JTable) e.getSource();

                    // Get clicked MediaItem (row)
                    MediaItem item = getAddedItemByFilenameAndAbsPath(
                            String.valueOf(thisTable.getModel().getValueAt(thisTable.getSelectedRow(), 1)),
                            String.valueOf(thisTable.getModel().getValueAt(thisTable.getSelectedRow(), 0)));

                    // Show popup for changing seconds of MediaItem if it is a Model.Text- or Model.Image-object
                    if (item instanceof Model.Text || item instanceof Model.Image) {
                        enterDuration(item, thisTable.getSelectedRow());
                    }
                }
            }
        });
    }