public final void initUI() {
		
		amiListe = new JComboBox<UserProfile>(); //liste déroulante servant à stocker les amis.

		panel = new JPanel(); //panel principal servant à stocker tous les autres éléments.
		getContentPane().add(panel); //On le rajoute à la fenêtre.
		
		/* Défini les caractéristiques du panel principal. */
		panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
		panel.setBackground(Color.WHITE);

		/* Une zone de texte et un bouton pour ajouter un ami */
		addFriend = new JTextField(40);
		addFriend.setMaximumSize(new Dimension(Integer.MAX_VALUE, addFriend.getMinimumSize().height));
		panel.add(addFriend);
		JButton addButton = new JButton("Add");
		addButton.setAlignmentX(Component.LEFT_ALIGNMENT);
		panel.add(addButton);
		
		/* Une zone de texte et un bouton pour poster */
		postText = new JTextField(40);
		postText.setMaximumSize(new Dimension(Integer.MAX_VALUE, postText.getMinimumSize().height));
		panel.add(postText);
		JButton postButton = new JButton("Post");
		JButton postImageButton = new JButton("Post an image.");
		
		//Action associée au bouton add.
		addButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				try {
					String infoFriend = addFriend.getText(); //on récupère le texte
					addFriend.setText("");//on l'enlève
					String[] infoFriendTrie = infoFriend.split(":");//on recupere l'adresse et le port.
					
					//création du podLocation correspondant.
					PodLocation friendLocation = new PodLocation(InetAddress.getByName(infoFriendTrie[0]),
																 Integer.parseInt(infoFriendTrie[1]));
					
					//création du podLocation correspondant à mon adresse.
					PodLocation myLocation = new PodLocation(InetAddress.getLocalHost(),pod.getListeningPort());
					
					//on vérifie si l'adresse est valable. 
					if(pod.hasPendingFriend(friendLocation))
						afficherErreur("Inivtation déjà envoyé (en attente de réponse).");
					else if(pod.hasFriend(friendLocation))
						afficherErreur("Ami déjà ajouté.");
					else if(myLocation.equals(friendLocation))
						afficherErreur("Vous ne pouvez pas vous ajoutez.");
					else
						pod.addPendingFriend(friendLocation);
				}catch(Exception e){
					//l'ajout n'a pas été demandé de la bonne façon
					afficherErreur("Erreur ajout d'ami. \nUsage : w.x.y.z:p avec w.x.y.z adresse ip et p le port.");
				}				
			}
		});

		//action associée au bouton post.
		postButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				String myMsg = postText.getText(); //on récupère le text
				postText.setText("");
				Message message = new Message(myMsg, new Date()); //on crée l'objet message correspondant.
				pod.addMessage(message); //on le rajoute au pod.
				JLabel label = new JLabel(myMsg); //on crée l'objet servant à le stocker dans l'interface.
				me.add(label); //on l'affiche
				panel.validate();
			}
		});
		
		//action associée au bouton post image.
		postImageButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				
				JFileChooser choix = new JFileChooser(); //on demande où se trouve l'image;
				int retour=choix.showOpenDialog(panel); //code de retour
				
				if(retour==JFileChooser.APPROVE_OPTION){ //si un fichier a été choisi
					try {			   
					   JLabel imagePanel = new JLabel(); //on crée l'objet stockant l'image.
					   ImageIcon image = new ImageIcon(choix.getSelectedFile().getAbsolutePath()); //on crée l'image
					   imagePanel.setText(null); 
					   imagePanel.setIcon(image);
					   me.add(imagePanel); //on rajoute l'image
					   panel.validate();
					   pod.addImage((new File(choix.getSelectedFile().getAbsolutePath())).toURI().toURL()); //on envoie l'image
					}catch(Exception e){
						e.printStackTrace();
					}
				}
			}
		});

		

		postButton.setAlignmentX(Component.LEFT_ALIGNMENT);
		panel.add(postButton);
		postImageButton.setAlignmentX(Component.LEFT_ALIGNMENT);
		panel.add(postImageButton);

		/* Un panel horizontal pour les gens */
		JPanel people = new JPanel();
		panel.add(people);
		people.setAlignmentX(Component.LEFT_ALIGNMENT);
		/* Les personnes sont affichées de gauche à droite */
		people.setLayout(new GridLayout(1,3));

		/* Moi */
		me = new JPanel();
		me.setBackground(Color.WHITE);
		me.setBorder(new LineBorder(Color.black));
		/* Mes commentaires sont affichés de haut en bas */
		me.setLayout(new BoxLayout(me, BoxLayout.Y_AXIS));
		me.setAlignmentY(Component.TOP_ALIGNMENT);
		JScrollPane meScroll = new JScrollPane(me);
		people.add(meScroll);
		me.add(new JLabel("Mes posts :"));
		panel.validate();

		/* Les ami */
		them = new JPanel();
		them.setBackground(Color.WHITE);
		them.setBorder(new LineBorder(Color.black));
		them.setLayout(new BoxLayout(them, BoxLayout.Y_AXIS));
		them.setAlignmentY(Component.TOP_ALIGNMENT);
		JScrollPane themScroll = new JScrollPane(them);
		people.add(themScroll);
		them.add(new JLabel("Les posts de mes amis :"));
		panel.validate();

		//la liste des amis
		ami = new JPanel();
		ami.setBackground(Color.WHITE);
		ami.setBorder(new LineBorder(Color.black));
		ami.setLayout(new BoxLayout(ami, BoxLayout.Y_AXIS));
		ami.setAlignmentY(Component.TOP_ALIGNMENT);
		JScrollPane amiScroll = new JScrollPane(ami);
		people.add(amiScroll);
		ami.add(new JLabel("Mes amis :"));
		ami.add(amiListe);
		
		JButton deleteButton = new JButton("Supprimer");
		
		deleteButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				try {
					UserProfile oldFriend = (UserProfile) amiListe.getSelectedItem(); //on récupère l'ami sélectionné dans la liste
					pod.sendCommand(pod.getFriend(oldFriend.getUUID()).getLocation().getAddress(), 
							pod.getFriend(oldFriend.getUUID()).getLocation().getPort(), 
							"DEL", 
							pod.getOwner().toJSON()); //on envoie la commande "DEL"
					pod.removeFriend(oldFriend.getUUID()); //on le retire du pod.
					amiListe.removeItem(oldFriend); //on le retire de l'interface
					afficherSuppression(oldFriend.getName(), false); //on indique la suppression.
				} catch (JSONException e) {
					afficherErreur("Erreur suppression d'ami.");
					e.printStackTrace();
				}
			}
		});
		
		ami.add(deleteButton);
		panel.validate();

		/* Le reste de l'interface */
		setTitle(pod.getOwner().getName());
		setSize(500, 500);
		setLocationRelativeTo(null);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		
	}