Code Monkey home page Code Monkey logo

gestionnaire-collections-photos's Introduction

Gestionnaire-collections-photos

Capture

Class Photo

la classe contient:

  • deux attributs finals:

    • File image (fichier image)
    • Icon imageIcon (l'image redimensionnée aux dimensions du label) // getScaledInstance
  • deux accesseurs en lecture:

    • getImage -> retourner le fichier image (l'original)
    • getImageResized -> retourner l'objet image redimensionnée

Class Collections

la classe contient :

  • un attribut final :
    • File rep (le repertoire collections, là où il y a tout!)
  • Le constructeur:
    • il vérifie si le répertoire collections existe déja dans le projet, sinon le créer.
  • accesseur en lecture:
    • retourne l'attribut rep

Les méthodes de la classe :

  • getCollections :
    • retourne tous les répertoires (les collections) listés dans le répertoire "collections"
  • addCollection :
    • elle prend en argument un String nom de la collection
    • elle ajoute une nouvelle collection au répertoire "collections"
  • getPhotos :
    • elle prend en argument une (File) collection
    • elle retourne toutes les images "jpg", "png", "gif", "bmp" listées dans la collection (converties en objet Photo)

L'interface (classe Window)

la classe contient :

  • trois attributs :
    • une instance de la classe Collections
    • un tableau de File (collectionsList) pour stocker la liste des collections
    • un tableau de Photo (currentPhotos) pour stocker les photos de la collection en cours d'utilisation
  • Le constructeur:
    • il initialise les composantes de l'interface
    • il fait appel à la methode generate (generer la liste des collections)

Les méthodes de la classe:

  • generate:
    • elle initialise l'attribut 'c' (collections)
    • elle stocke la liste des collections dans l'attribut collectionsList en faisant appel à la méthode getCollections de la classe Collections
    • si ce n'est pas la première fois qu'on fait appel à cette méthode elle garde la dernière collection utilisée
    • on enleve tous les elements de la comboBox
    • si la liste des collections n'est pas vide, on ajoute les noms de celles ci dans la comboBox, en mettant le selected item sur la dernière utilisée si elle existe toujours

Les fonctionnalités de l'interface

  • selectionner un item dans la comboBox (collectionsComboItemStateChanged) :

    • la méthode récupère l'item selectionnée (collectionName)
    • elle le recherche dans la liste des collections (si elle n'est pas vide)
    • si la collection est dans la liste on projète sur le jLabel la première image de la collection
    • sinon on affiche le texte "Empty collection!"
  • Suivant & Précédent (suivantActionPerformed & precedentActionPerformed):

    • si le tableau currentPhotos n'est pas nul
    • la méthode récupère l'icon dans le jLabel
    • elle recherche son index dans le tableau grâce à la méthode indexOf
    • on projète l'image suivante (ou précédente) dans le jLabel
  • Ajouter une collection (addCollectionButtonActionPerformed) :

    • avec JOptionPane, l'utilisateur saisit le nom de la collection qu'il va ajouter.
      Capture
    • la méthode récupère le nom de la nouvelle collection
    • on recherche d'abord si la collection existe déjà, on affiche une alerte
    • sinon on fait appel à la méthode addCollection de la classe Collections
    • on fait ensuite appel à la methode generate pour regenérer la comboBox
    • on afficher ensuie une alerte pour informer l'utilisateur de son ajout
  • Supprimer une collection (deleteCollectionButtonActionPerformed) :

    • on récupère la collection en cours d'utilisation (currentCollectionName)
    • on crée un tableau qui regroupe les noms de collections
    • on affiche un JOptionPane (boite de dialogue) afin que l'utilisateur choisisse la collection à supprimer, à défault c'est la collection en cours qui est selectionnée.
    • si l'utilisateur a choisi, on crée ensuite un File avec son choix
    • on verifie si la collection n'est pas vide, on supprime ce qu'il y a dedans
    • on supprime la collection
    • on fait appel à generate pour réinitialiser la liste des collections
    • on affiche une boite de dialogue infomant de la suppression de la collection
  • Déposer une photo (addPhotoButtonActionPerformed) :

    • on récupère la collection en cours d'utilisation (currentCollectionName)
    • on crée un tableau qui regroupe les noms de collections
    • on affiche un JOptionPane (boite de dialogue) afin que l'utilisateur choisisse la collection à laquelle ajouter une photo, à défault c'est la collection en cours qui est selectionnée.
    • le choix de l'utilisateur sera la collection ou on mettera l'image.
    • on crée ensuite un JFileChooser et on défini le répertoire d'ouverture sur le dossier de téléchargement.
    • le JFilechooser n'accepte que les fichiers (FILES_ONLY)
    • on ajoute aussi un filtre, pour n'accepter que les images (jpg, png, gif, bmp)
    • on recupère l'image choisie, on ouvre la collection, et on la copie dans cette dernière.
    • on fait appel à generate pour réinitialiser la liste des collections
  • Retirer une photo (deletePhotoButtonActionPerformed) :

    • on récupère la collection en cours d'utilisation (currentCollectionName)
    • on crée un tableau qui regroupe les noms de collections
    • on affiche un JOptionPane (boite de dialogue) afin que l'utilisateur choisisse la collection où supprimer une photo, à défaut c'est la collection en cours qui est selectionnée.
    • on crée ensuite un JFileChooser et on défini le répertoire d'ouverture sur le choix de l'utilisateur.
    • le JFilechooser n'accepte que les fichiers (FILES_ONLY)
    • on ajoute aussi un filtre, pour n'accepter que les images (jpg, png, gif, bmp)
    • on recupère l'image choisie, et on la supprime.
    • on fait appel à generate pour réinitialiser la liste des collections

La fonctionnalité de plus - Key Event -

  • Pour changer de collection utiliser les touches ⬆ & ⬇
  • Pour changer de photos utiliser les touches ⬅ & ➡
  • formKeyPressed :

    • on enlève le focus à toutes les composantes de l'interface (sauf la fenêtre en elle même)
    • on recupère le code de la touche appuyée
    • avec un switch, on fait appel à la méthode qu'il faut.

gestionnaire-collections-photos's People

Contributors

mustapha-smail avatar jstnfr avatar amaliabnn avatar

Stargazers

Gustavo Souza avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.