IFT1020 - Automne 2004
TP3 - Générateur des listes de MP3


 

But: Créer une application avec des menus; Utiliser les Collections de Java
Date limite: 23 novembre, 12h00 (midi)

Vous devez créer une application (pas un applet!) Java qui affiche une liste de chansons mp3 et qui permet à un usager de générer des listes de lecture.

Pour mieux comprendre ce que vous devez faire, essayer mon exemple. (Je n'ai pas implanté l'application pour remplir une liste de lecture automatiquement (le bouton "Extend Playlist"), mais le reste fonctionne correctement):

cd ~pift1020/HTML/tp3
java MusiqueApp Library.txt
ou
java MusiqueApp


À gauche, l'affichage au moment de l'initialisation du programme. À droite, l'affichage après avoir inséré quelques chansons dans la liste de lecture.

Votre programme doit lire un fichier en format texte qui contient l'information pour décrire plusieurs chansons. Vous devez utiliser le format créé par Apple iTunes via le menu "File->Export Song List". Vous pouvez utiliser Library.txt pour tester votre programme. La première ligne du fichier définit quel champs d'information sont contenus dans le fichier. Les champs d'information sont separés par un onglet. Chacunes des lignes suivantes contient l'information relative à une chanson:

Name	Artist	Composer	Album	             Grouping	Genre	Size      ... 
Kaboom	12 Rods		        Separation Anxieties		Rock	4814449   ...
Vous devez utiliser ce fichier pour créer une liste (List). Vous devez l'afficher avec un JComponent de la librairie Swing. J'ai utilisé un JTable, mais vous pouvez choisir un autre JComponent si vous voulez. Ainsi, vous pouvez créer l'interface de votre choix, mais vous devez permettre à l'usager de créer facilement une liste de chansons. Dans mon interface il y a deux JTable et deux JButton.

Voici les éléments que vous devez implanter dans votre programme:

  1. Un menu avec Ouvrir Fichier et Quitter;
  2. Une interface usager qui permet de choisir des chansons de la librairie pour créer une liste de lecture;
  3. Une classe contenant une liste (List) qui corresponde à un ensemble de chansons;
  4. La possibilité de trier la librarie par Id, Artist, Album et Song. Vous devez utiliser la méthode Collections.sort(List,Comparator). Vous devez générer le numéro unique d'identification (Id); Il n'est pas fourni par le fichier de format texte;
  5. La possibilité d'enlever toutes les chansons de la liste de lecture (par exemple en utilisant un bouton);
  6. La possibilité de générer automatiquement une liste de lecture qui contient des chansons similaires à celles fournies par l'usager. Vous recevrez les détails concernant la génération automatique des listes de lecture lundi le 15 novembre!

MouseListener

Voici un exemple d'un MouseListener pour le TableHeader
:
import java.util.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.table.*;
class TestTable extends JFrame { 
    private JTable tbl;
    private static String [] columnNames = {"A","B","C"};
    private static Object [][] data = {{"1","2","3"},{"4","5","6"}};

    public TestTable() {
	
	tbl = new JTable(data,columnNames);
        tbl.setColumnSelectionAllowed(false);
        tbl.getTableHeader().addMouseListener(
	    new MouseAdapter() {
		public void mouseClicked(MouseEvent e) {
		    int viewColumn = tbl.getColumnModel().getColumnIndexAtX(e.getX());
		    int column = tbl.convertColumnIndexToModel(viewColumn);
		    System.out.println("Column " + column + " selected");
		}
	    });

	getContentPane().add(new JScrollPane(tbl));
    }

    public static void main (String [] args) {
	TestTable tt = new TestTable();
        tt.setSize(300,100);
        tt.setVisible(true);
    }
}      

Détails

Vous pouvez voir un exemple du programme en faisant les commandes suivantes. Il est normal que vous ne puissiez pas lire le contenu de ce répertoire, mais vous pouvez accéder quand même au programme en tapant ces commandes telles quelles.

      inclure jdk-1.4
      cd ~pift1020/HTML/tp3
      java MusiqueApp
ou
      java MusiqueApp Library.txt
      
Il faut ensuite envoyer, par la procédure de remise électronique habituelle, les fichiers nécessaires à l'éxécution de votre programme avant le 23 novembre 2004 à 12:00 (midi). Vous remettrez également une copie papier d'un court rapport et de votre programme Java lors de la séance du cours du 23 novembre.

Ce TP sera noté sur 10.

Résultats corrects 3
Utilisation des collections 2
Interface usager 2
Génération automatique des listes 1
Lisibilité du code 1
Rapport 1

bonne chance

Doug Eck

Retour à la page principale d'ift1020
Last modified: Tue Nov 23 13:53:16 EST 2004 par Douglas Eck [douglas D0T eck AT umontreal D0T ca]