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
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:
- Un menu avec
Ouvrir Fichier
etQuitter
; - Une interface usager qui permet de choisir des chansons de la librairie pour créer une liste de lecture;
- Une classe contenant une liste (
List
) qui corresponde à un ensemble de chansons; - La possibilité de trier la librarie par
Id, Artist, Album
etSong
. Vous devez utiliser la méthodeCollections.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; - La possibilité d'enlever toutes les chansons de la liste de lecture (par exemple en utilisant un bouton);
- 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 leTableHeader
:
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.txtIl 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