Projet Java
Christian Delmas & Stéphane Rouvière
![]() |
Proposé par
: Jean-Louis Faraut (jlf@essi.fr)
Sujet : Ecrire en Java un browser d'images à la xv, permettant de visualiser d'un coup plusieurs images de format différents, situés sur le filesystem local ou sur le réseau (dans ce cas, on passera l'URL d'un directory, par exemple http://www.essi.fr/images ou ftp://ftp.inria.fr/images) . |
Travail Réalisé:
Notre browser d'images permet de visualiser les images au format jpg et gif.
Le menu File dispose des options suivantes :
Open
File...
Open
Location...
Open
Visual Browser...
Open
Remote Browser...
Exit
Quelques explications sur le fonctionnement de notre application :
Open
File... permet de visualiser le contenu d'un répertoire. Il
s'agit en fait d'un browser de fichiers, qui prend en compte l'ensemble
des formats les plus connus (jpg, gif, tiff, doc, html, zip, ...). Notre
application ayant pour but principal de traiter les images, un double click
(ou un simple click et un load) sur une image au format jpg ou gif, permettent
de faire apparaitre l'image dans sa taille réelle.
Note
Technique: La classe pincipale est MyList. En reprenant le type
List de base de java, cette classe gère l'affichage de la liste
des fichiers, les boutons et la scrollbar.
Open
Location... permet de visualiser des images à distance.
Il suffit alors de rentrer une adresse http ou ftp. Le Browser (version texte) apparait alors comme ci dessous:
Open
Visual Browser... permet de visualiser le contenu d'un répertoire,
mais on peut dire que c'est un croisement entre l'explorateur Windows et
le Schnauzer de Xv4.
Voici un exemple de l'interface graphique disponible :
Comme on peut le voir ci dessous, notre Browser reconnait les types de fichiers les plus courants. Comme un browser classique, il permet de naviguer dans les répertoires. Toutefois, il affiche en plus les images jpg et gif iconifieés. Les tailles de ces dernières sont donc réduites, mais les proportions entre largeur et hauteur sont conservées. Pour ce qui est des noms, ils sont inscrits bien évidemment sous le fichier correspondant. Si le nom est trop long, la fin de ce dernier est coupée (on en a toutefois affiché le maximum suivi de 3 points de suspension.)
Pour visualiser une image, comme dans le cas précédent, un double click (ou un simple click et un load) sur une image au format jpg ou gif, suffisent.
Note
technique: Ce Visual Browser utilise des classes spécifiques,
MyIcons et MyListVisual. (Celà ressemble beaucoup à MyList
mais toute la partie graphique est regérée) :
MyListVisual:
Crée la liste des fichiers qui vont être accessibles. En fait
ce sera une liste de MyIcons. MyListVisual gère les boutons LoadImage
et Quit, le Panel sur lequel apparaissent les fichiers, et la scrollbar.
(fichier : MyListVisual.java)
MyIcons
: Ce sont des objets qui contiennent l'image, le nom, la taille et la position
de chaque icone. Cette classe gère l'icone à afficher en
fonction du type de fichier : icones word, zip, text... (dans le répertoire
icones2), ou bien l'image elle-même en plus petit (à redimensionner
et positionner correctement). (fichier : MyIcons.java)
Open
Remote Browser... fonctionne exactement sur le même principe
que le visual browser. Cependant, lors de son utilisation, une fenêtre
apparait demandant une adresse ftp ou http. On visualise donc ensuite le
contenu d'un répertoire distant.
Note
technique: Lorsque l'on essai d'ouvrir un répertoire
distant, on recoit en fait le contenu d'un page html. Il faut ensuite parser
ce contenu pour ne récupérer que les fichiers (situés
dans les HREF="..." du code html). On peut récupérer
l'ensemble de ces fichiers ou comme dans notre cas, ne récupérer
que les images au format gif ou jpg. Il est nécessaire de faire
attention au probleme suivant : dans une page html, il est possible de
faire référence à des fichiers ou à des répertoires
qui ne sont pas situés au même endroit que la page que l'on
est en train de parser. Il faut en tenir compte, si on affiche tout, pour
ne pas avoir de problèmes lors de la navigations dans les répertoires.
Remarques
Générales sur notre application :
Lorsque l'on est dans un certain mode (local ou distant) on peut basculer d'une visualisation texte à une visualisation par icones et inversement. On peut également changer de répertoire en tapant directement dans la zone de texte.
Lorsque les icones sont en train d'apparaitre, on peut toutefois visualiser l'image. Elle apparait en même temps. (On utilise pour cela les threads). Dans ce cas là, on ne "recharge" pas l'image, on réaffiche l'image qui est dans le cache, mais cette fois ci, avec sa taille réelle.
Si, lorsqu'on essai d'accéder à un répertoire, ce dernier est protégé, une fenêtre apparait et l'indique à l'utilisateur.
Il est possible de naviguer dans les répertoires lorsqu'on est en local. Par contre cela n'est pas autorisé à distance en raison des problèmes de liens et de sécurité.
Enfin, il est possible de récupérer les sources de cette application. Vous devez télécharger les fichiers suivants :
BrowserFile.java
EssiXv.java
MonUrl.java
MyIcons.java
MyList.java
MyListVisual.java
XvDisplay.java
XvImage.java
XvList.java
... et les 2 répertoires : icones/ et icones2/
![]() |
Et pour finir, voici les sources
à récupérer .....
Enfin, si vous voulez nous écrire :
|