TreePath currentPath = tree.getSelectionPath();
	public static void initTable() {		table.setCellSelectionEnabled(true);		table.setShowGrid(false);		table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);		/* POSITIONNEMENT DU RENDU */		TableRenderer.setIconsSize(IconsManager.BIG_ICONS);		table.setDefaultRenderer(File.class, new TableRenderer() {			public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {				Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);				if(value == null) return new JLabel("");				File file = (File)value;				if(file.equals(currentFolder)) {					((JLabel)c).setText(".");					((JLabel)c).setIcon(TableRenderer.FATHER_ICON);				}				else if(file.equals(currentFolder.getParentFile())) {					((JLabel)c).setText("..");					((JLabel)c).setIcon(TableRenderer.FATHER_ICON);				}				if(tableModel.getColumnCount() < 2) {					((JLabel)c).setHorizontalAlignment(SwingConstants.LEFT);					((JLabel)c).setVerticalAlignment(SwingConstants.CENTER);					((JLabel)c).setHorizontalTextPosition(SwingConstants.RIGHT);					((JLabel)c).setVerticalTextPosition(SwingConstants.CENTER);				}				return c;			}		});		/* POSITIONNEMENT DES EVENEMENT SOURIS */		table.addMouseListener(new MouseAdapter() {			public void mouseClicked(MouseEvent e) {				Point p = new Point(e.getX(), e.getY());				int row = table.rowAtPoint(p);				int column = table.columnAtPoint(p);				File file = (File)tableModel.getValueAt(row, column);				if(file == null) {					row = column = 0;					if(!currentFolder.equals(table.getValueAt(0, 0))) {						if(tableModel.getColumnCount() > 1) column = 1;						else row = 1;					}				}				switch(e.getButton()) {					case MouseEvent.BUTTON1 :					if(e.getClickCount() == 2) {						if(file == null || file.equals(currentFolder)) break;						if(file.isDirectory()) {							boolean down = currentFolder.equals(file.getParentFile());							setFolder(file);							TreePath currentPath = tree.getSelectionPath();							if(currentPath != null) {								if(down) currentPath = currentPath.pathByAddingChild(currentFolder);								else currentPath = currentPath.getParentPath();								tree.setSelectionPath(currentPath);								tree.expandPath(currentPath);								tree.scrollPathToVisible(currentPath);							}						}					}					break;										case MouseEvent.BUTTON2 :					break;										case MouseEvent.BUTTON3 :					if(file == null || file.equals(currentFolder) || file.equals(currentFolder.getParentFile())) {						if(table.getSelectedRow() != row || table.getSelectedColumn() != column) {							table.setRowSelectionInterval(row, row);							table.setColumnSelectionInterval(column, column);						}						clickInFile.show(e.getComponent(), e.getX(), e.getY());						break;					}					int[] rows = table.getSelectedRows();					int[] columns = table.getSelectedColumns();					boolean selectItem = false;					if(rows.length == 1 && columns.length == 1) selectItem = true;					else {						boolean inRows = false;						for(int i = 0; i < rows.length && !inRows; i ++){							if(rows[i] == row) inRows = true;						}						if(!inRows) selectItem = true;						else {							boolean inColumns = false;							for(int i = 0; i < columns.length && !inColumns; i ++) {								if(columns[i] == column) inColumns = true;							}							selectItem = !inColumns;						}					}					if(selectItem && (table.getSelectedRow() != row || table.getSelectedColumn() != column)) {						table.setRowSelectionInterval(row, row);						table.setColumnSelectionInterval(column, column);					}					clickOutFile.show(e.getComponent(), e.getX(), e.getY());					break;				}			}		});	}