In order to show a pop-up when cell is clicked, you need a cell editor class. The main purpose of this class is to provide custom editors for cells, but you can use it to trigger some action when your cell is clicked: 
public class InfoCellEditor extends AbstractCellEditor implements TableCellEditor {
    @Override
    public java.awt.Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
        InfoObject info = (InfoObject) value;
        editButton = new JButton(new InfoAction(info));
        editButton.setText("INFO");
        editButton.setEnabled(true);
    }
    private class InfoAction extends AbstractAction {
        InfoObject info;
        public InfoAction(InfoObject info) {
            super();
            this.info = info;
        }
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(null, info.toString());
            stopCellEditing();
        }
    }
}
Then, extend JTable class and implement getColumnClass and isCellEditable methods:
public class MyTable extends JTable {
    public MyTable() {
        super();
        setDefaultEditor(InfoObject.class, new InfoCellEditor());
    }
    @Override
    public Class getColumnClass(int columnIndex) {
        if(columnIndex == 4)
            return InfoObject.class;
        else
            return String.class;
    }
    @Override
    public boolean isCellEditable(int row, int column) {
        if(column == 4)
            return true;
        else
            return false;
    }
}
Lastly, you should make sure that InfoObject instances are inserted to 5th column. And you can also implement a TableCellRenderer for some custom visual representation of that column.
Object headers = new Object[COLUMN_COUNT];
Object cells[][] = new Object[ROW_COUNT][];
...
cells[0][4] = new InfoObject(data[0]);
cells[1][4] = new InfoObject(data[1]);
table.setModel(new DefaultTableModel(cells, headers));
table.getModel().fireTableDataChanged();
table.setVisible();