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

AWT/Swing Java Discussion :

Besoin d'aide pour mon appli


Sujet :

AWT/Swing Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut Besoin d'aide pour mon appli
    Je suis débutant en java et j'essai de créer une application dans laquelle je doit afficher une image.

    J'ai une classe fenetre qui crée un JFrame, une classe AfficheImage qui permet de charger et d'afficher une image et une classe test qui permet de lancer l'application. Pour l'instant j'arrive a afficher ma fenetre mais pas l'image, que doit-je rajouter dans ma classe test pour lancer l'affichage de l'image?

    ma classe test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    package javaapplication2;
     
     
    public class test {
     
     
        public test() {
        }
     
     
     
        public static void main(String[] args) {
     
    Fenetre frame = new Fenetre();
     
    AfficheImage Im=new AfficheImage();
     
    frame.setVisible(true);
    }
     
        }
    ma classe afficheImage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    package javaapplication2;
     
    import java.awt.* ;
    import javax.swing.JFrame;
     
     
    public class AfficheImage extends Fenetre   {
     
        Image image;
     
     
        public AfficheImage() { 
        }
     
            public void paint(Graphics g) {
            image=Toolkit.getDefaultToolkit().getImage("canard.jpg") ;
            g.drawImage(image, 150,30,200,200,this);
        }
        public static void main(String[] args) {
            new AfficheImage();
        }
     
    }
    ma classe fenetre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
     
    package javaapplication2;
     
     
    import java.awt.*;
    import java.lang.*;
     
    public class Fenetre extends javax.swing.JFrame {
     
        /** Creates new form JFrame */
       public Fenetre() {
     
            initComponents();
     
        }
     
     
        private void initComponents() {
            jButton1 = new javax.swing.JButton();
     
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            jButton1.setText("jButton1");
     
            org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(getContentPane());
            getContentPane().setLayout(layout);
            layout.setHorizontalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(layout.createSequentialGroup()
                    .add(30, 30, 30)
                    .add(jButton1)
                    .addContainerGap(297, Short.MAX_VALUE))
            );
            layout.setVerticalGroup(
                layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
                .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup()
                    .addContainerGap(266, Short.MAX_VALUE)
                    .add(jButton1)
                    .addContainerGap())
            );
            pack();
        }
     
     
     
     
        private javax.swing.JButton jButton1;
     
     
    }
    merci d'avance

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    L'image est dans le fichier .jar ?
    essayez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    image=Toolkit.getDefaultToolkit().getImage("/canard.jpg") ;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Non le problème ne vient pas de là car lorsque je met le code d'affichage de l'image directement dans ma classe Fenetre, ca fonctionne.

  4. #4
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Pourquoi as-tu un main dans la classe afifcheImage mais aussi dans la classe test

    Il en faut juste un dans ta classe test. Après, j'ai pas regardé plus en détails ton problème.

    ps : dans la classe fenetre, tu pourrais remonter ça un peu plus haut dans le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private javax.swing.JButton jButton1;

  5. #5
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,


    Tu as deux main() ! Pourquoi ?
    De plus dans aucun des deux tu ne rend ta fenêtre AfficheImage visible...

    a++

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    c'est vrai que j'avais deux main, erreur de débutant .

    J'ai modifié le code avec vos conseils, ca fonctionne , le problème c'est que maintenant j'ai une fenetre qui s'affiche avec le bouton1 et une autre qui s'ouvre avec l'image.

    Le nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    package javaapplication2;
     
    public class test {
     
        public test() {
        }
     
        public static void main(String[] args) {
     
            Fenetre frame = new Fenetre();
     
            AfficheImage  Img= new AfficheImage();
            frame.setVisible(true);
            Img.setVisible(true);
     
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    package javaapplication2;
     
    import java.awt.* ;
    import javax.swing.JFrame;
     
     
    public class AfficheImage extends Fenetre   {
     
        Image image;
     
        public AfficheImage() {
        }
        public void paint(Graphics g) {
            image=Toolkit.getDefaultToolkit().getImage("canard.jpg") ;
            g.drawImage(image, 150,30,200,200,this);
        }
     
     
    }

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vince351
    le problème c'est que maintenant j'ai une fenetre qui s'affiche avec le bouton1 et une autre qui s'ouvre avec l'image.
    Ben étant donné que ton code affiche deux fenêtre, je ne vois pas en quoi cela peut être surprenant !!

    Que veux-tu faire exactement ???

    a++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Ce que je voudrais en fait c'est que mon image s'affiche dans ma fenetre. J'ouvre une Fenetre et lorsque j'ai besoin d'afficher l'image je l'affiche dans cette fenêtre.

  9. #9
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Citation Envoyé par vince351
    J'ouvre une Fenetre et lorsque j'ai besoin d'afficher l'image je l'affiche dans cette fenêtre.
    moi perso ça m'avance pas plus, je comprends toujours pas sur le fait que tu aies deux fenêtres.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    En fait ce que je voudrais en détail, c'est:
    1/ J'ouvre une fenetre sur laquelle il y a un jbutton, appelons la Fenetre 1
    2/ J'affiche une image dans la fenetre 1 un moment après l'ouverture de la fenetre (pour l'instant je n'ai pas codé le timer).

    Le problème c'est qu'avec mon code actuel qui est faux , j'ai ca:
    1/ J'ouvre une fenetre sur laquelle il y a un jbutton, appelons la Fenetre 1
    2/J'affiche une image dans une autre Fenetre
    Ca me fait donc une fenetre avec un boutton et une fenetre avec l'image.

    J'espere que c'est plus clair

  11. #11
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Donc ce que tu voudrais c'est avoir qu'une seule fenêtre et afficher au bout de quelques temps une image en plus du bouton sur cette fenêtre c'est bien ça?

    Il te suffit alors de rafraîchir l'affichage de ta fenêtre une fois le temps écoulé, par rafraîchissage, j'entends un appel à la méthode repaint() qui te permettra d'afficher ton image.

    C'est bien ça qui t'intéresse?

  12. #12
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Si je comprend bien tu veux avoir une seule fenêtre ? Mais dans ce cas pourquoi en afficher deux !!!

    Ce n'est pas logique... Utilises une seule fenêtre !

    a++

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Citation Envoyé par adiGuba
    Si je comprend bien tu veux avoir une seule fenêtre ? Mais dans ce cas pourquoi en afficher deux !!!

    Ce n'est pas logique... Utilises une seule fenêtre !

    a++
    Bah je vois pas où j'en ouvre une deuxième

    pour moi j'en ouvre une en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fenetre frame = new Fenetre();
     
            AfficheImage  Img= new AfficheImage();
            frame.setVisible(true);
            Img.setVisible(true);
    et c'est tout.

    J

  14. #14
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par vince351
    Bah je vois pas où j'en ouvre une deuxième

    pour moi j'en ouvre une en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Fenetre frame = new Fenetre();
     
            AfficheImage  Img= new AfficheImage();
            frame.setVisible(true);
            Img.setVisible(true);
    et c'est tout.

    J
    Ben ouais... Tu en ouvres bien deux

    Tu crée frame de type fenêtre et tu l'ouvres et ensuite tu crée Img de type AfficheImage et tu l'ouvres. Donc tu en ouvres deux.

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Citation Envoyé par sironimo
    Donc ce que tu voudrais c'est avoir qu'une seule fenêtre et afficher au bout de quelques temps une image en plus du bouton sur cette fenêtre c'est bien ça?

    Il te suffit alors de rafraîchir l'affichage de ta fenêtre une fois le temps écoulé, par rafraîchissage, j'entends un appel à la méthode repaint() qui te permettra d'afficher ton image.

    C'est bien ça qui t'intéresse?
    oui c'est ca que je veut mais je ne vois pas trop comment faire

  16. #16
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par vince351
    Bah je vois pas où j'en ouvre une deuxième
    Ben moi j'en vois bien deux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            Fenetre frame = new Fenetre(); // Création de la première fenêtre
     
            AfficheImage  Img= new AfficheImage(); // Création de la seconde fenêtre
            frame.setVisible(true);  // Affichage de la première fenêtre
            Img.setVisible(true);  // Affichage de la seconde fenêtre

    a++

  17. #17
    Membre confirmé Avatar de mattyeux
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    169
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 169
    Par défaut
    Le problème c'est que ta classe AfficheImage extends Fenetre. Elle a donc toutes les propriétés de Fenètre. C'est donc une Fenetre. Quand tu construit ton AfficheFenetre, ca construit une autre Fenetre ....

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 66
    Par défaut
    Ok merci, le problème venais surement de mon extends Fenetre, je l'ai supprimé, le problème c'est que maintenant j'ai une erreur sur mon g.drawImage, surement à cause du this, mais que mettre à la place?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g.drawImage(image, 150,30,200,200,this);

  19. #19
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Je problème ne vient pas de ton extends !!!

    Tu as deux fenêtres différentes représentées par deux classes (Fenetre et AfficheImage).

    Si tu ne veux avoir qu'une seule fenêtre utilises en une seule, et donc supprime une des deux classes...


    a++

    PS : j'ai l'impression que tu ne dois pas comprendre quelques choses dans les notions d'héritages...

  20. #20
    Membre émérite
    Avatar de sironimo
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    669
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 669
    Par défaut
    Ben que repésente ton this ?? dans quelle classe es tu?

Discussions similaires

  1. besoin d'aide pour mon programme
    Par pouyoudu17 dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 28/05/2007, 23h18
  2. Besoin d'aide pour mon premier article tex
    Par amel666 dans le forum Erreurs - Avertissements
    Réponses: 2
    Dernier message: 21/02/2007, 14h18
  3. Spring EJB RMI besoin de conseils pour mon appli
    Par illmonkey dans le forum Java EE
    Réponses: 1
    Dernier message: 29/01/2007, 06h00
  4. besoin d'aide pour mon future site
    Par vulquin dans le forum Général Conception Web
    Réponses: 3
    Dernier message: 11/06/2006, 21h33
  5. Besoin d'aide pour mon rpg en javascript
    Par CyberTwister dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/04/2006, 14h26

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