IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Je charge aléatoirement des méthodes que je n’appelle pas !


Sujet :

avec Java

  1. #21
    Membre du Club Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    Re,
    J'ai trouvé ma réponse à ma première question.
    voici ce que j'ai trouvé :
    What is the difference between Image and BufferedImage?
    As stated in the Oracle Java tutorial for working with Images
    • The java.awt.Image class is the superclass that represents graphical images as rectangular arrays of pixels.
    • The java.awt.image.BufferedImage class, which extends the Image class to allow the application to operate directly with image data (for example, retrieving or setting up the pixel color). Applications can directly construct instances of this class.
    The BufferedImage class is a cornerstone of the Java 2D immediate-mode imaging API. It manages the image in memory and provides methods for storing, interpreting, and obtaining pixel data. Since BufferedImage is a subclass of Image it can be rendered by the Graphics and Graphics2D methods that accept an Image parameter.
    A BufferedImage is essentially an Image with an accessible data buffer. It is therefore more efficient to work directly with BufferedImage. A BufferedImage has a ColorModel and a Raster of image data. The ColorModel provides a color interpretation of the image's pixel data.
    ________________________________________
    Can I create a BufferedImage directly from an Image source "image.png"?
    Sure.
    BufferedImage img = ImageIO.read(getClass().getResource("/path/to/image"));
    Je continue à travailler sur les autres sujets...
    A+

  2. #22
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par tarpal Voir le message
    Première question : BufferedImage :
    Java est un langage orienté objet. Une classe définit le comportement d'un objet. Dans le paradigme objet, il y a la notion d'héritage. Les comportements d'un objet peuvent être hérités d'un autre objet. Une classe peut donc étendre une autre classe afin d'en hériter les comportements.
    BufferedImage est une classe qui étend Image. On dit que Image est plus générale que BufferedImage et que BufferedImage est plus spécifique que Image.

    Ainsi, une variable ou une instance d'objet peut être du type BufferedImage, mais on peut la manipuler par un type plus général, comme Image. La méthode ImageIO.read() retourne une instance de classe BufferedImage, mais on peut la typer avec un type plus général. Tout dépend ce qu'on veut pouvoir faire ensuite avec la variable. Si on a besoin de manipuler l'objet par des méthodes de la classe spécifique, on devra la typer par le type spécifique, mais si on n'en a pas besoin, on peut la typer par le type général. C'est d'ailleurs mieux en général, parce que çà permet globalement de se rendre indépendant de l'implémentation spécifique, et donc, éventuellement, plus tard, de changer l'implémentation spécifique sans impact sur le code existant (sans avoir à réécrire des parties du code).

    Par extension, toute classe étend directement ou indirectement (par l'intermédiaire d'autres classes) la classe Object, et, donc, on pourrait tout à fait écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Object image = ImageIO.read(...)
    Mais on ne pourrait pas écrire dans paintComponent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage( image,...)
    Parce que la méthode drawImage prend un paramètre de type Image, et que Object n'est pas le type Image.


    Citation Envoyé par tarpal Voir le message
    Deuxième question : Timer :

    Là aussi j'ai deux codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    private Timer chrono;	
    			chrono = new Timer(1000, manager);
    			chrono.start();
    et le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Timer chrono = new Timer(1000,this);
    Quelle est la signification du 2eme argument ? ( this, manager ...)
    je n'ai pas saisi...
    Pour connaitre le sens des paramètres, rien de mieux que la documentation (javadoc). La javadoc de javax.swing.Timer indique que le contructeur de cette classe prend 2 paramètres, un long et un ActionListener. Le second paramètre est donc une instance d'ActionListener. Si manager est une variable dont le type est ActionListener, ou toute classe qui implémente ActionListener, elle sera acceptée. this représente l'instance de l'objet à qui appartient la méthode dans laquelle tu as ce code : si cette classe implémente ActionListener, alors le paramètre est accepté.


    Citation Envoyé par tarpal Voir le message

    Et enfin troisième question : File :

    dans le code qui suit :
    je suppose qu'on déclare un tableau.
    Hors dans un tableau on ne peut mettre que des variables de type primitifs ( int, double,char...)
    Non, on peut mettre tout ce qu'on veut dans un tableau. Aussi faut-il qu'il soit typé de façon adéquate.
    Le tableau suivant peut contenir des int
    Le tableau suivant peut contenir des images (et doit contenir des Image, donc peut contenir des BufferedImage)
    Le tableau suivant peut contenir des File
    Citation Envoyé par tarpal Voir le message
    Ici je souhaite y mettre des images.
    Pour y mettre autre chose il faut utiliser un "ArrayList".
    C'est ce que j'avais compris dans mon apprentissage.
    Où est l'erreur ?
    Un ArrayList est juste une version spécifique de List, qui utilise un tableau en interne pour stocker ses éléments.
    Un List est un ensemble d'objets dénombrables, dont l'accès est direct (on peut accèder à un élément par sa position, son index). En outre, on peut ajouter des éléments à une List, ou en retirer, donc faire varier sa taille, ce qui n'est pas possible avec un tableau.
    C'est pourquoi certains enseignants abusent de l'expression "tableau dynamique" pour désigner un ArrayList.
    Comme on ne peut pas changer la taille d'un tableau, il faut la connaitre d'avance pour le créer, avant de pouvoir le remplir. Lorsqu'on a besoin de créer l'équivalent sans connaitre le nombre d'éléments d'avance, on utilise une List à place (utiliser un ArrayList n'est pas une obligation en revanche (le choix de l'implémentation spécifique est souvent en relation avec les traitements à faire et les performances associées, mais en tant que débutant, tu peux pour l'instant utilsier sans souci une ArrayList)).


    Citation Envoyé par tarpal Voir le message
    Et enfin dans le cadre général, quel serait le lien qui me permettrais d'avoir la doc Java?
    je sais je suis nul mais je n'ai pas trouvé quelque chose qui me convienne !!!
    Merci d'avance pour vos réponses.
    A+

    Dans un moteur de recherche, en général "Java <ici la version> javadoc" fonctionne très bien. On obtient un lien appelé "
    Overview (Java Platform SE 7 )" pour la version 7 (la javadoc, donc les classes standard, leurs contructeurs et méthodes, leurs paramètres, etc), et un lien "
    Java Platform Standard Edition 7 Documentation" pour une documentation beaucoup plus étendue.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #23
    Membre du Club Avatar de tarpal
    Homme Profil pro
    Ingénieur Electronique retraité
    Inscrit en
    Février 2016
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Electronique retraité
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2016
    Messages : 70
    Points : 41
    Points
    41
    Par défaut
    Rebonjour,
    Merci @joel.drigo pour ta dernière réponse
    BufferedImage :
    OK. Je pense que c'est celui que j'utiliserais car j'ai l'intention de traiter l'image jusqu'aux pixels.
    Timer :
    OK. Il est important de savoir que le deuxième argument est un ActionListener.
    File[] :
    Réponse parfaite, ça m'a mis les points sur les i...
    En fait, tes réponses m'ont éclairé tout au long de ce Post.
    N'ayant pas de professeur, pour un débutant comme moi,ça a été une chance pour moi que tu ai bien voulu me prendre en main.
    Ce donc je te remercie encore.
    Je vais mettre le sujet en résolu.
    J'ouvrirais d'autres post en cas de besoin
    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/12/2007, 23h08
  2. Réponses: 2
    Dernier message: 22/11/2007, 12h00
  3. Réponses: 4
    Dernier message: 24/06/2004, 12h13
  4. Choisir aléatoirement des noms...
    Par CritikKiller dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/06/2004, 20h15
  5. [Info]descriptif des méthode ?
    Par java_math dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/06/2004, 08h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo