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 :

HELP ! insérer Image dans le main ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut HELP ! insérer Image dans le main ?
    Voila mon problème : j'aimerais afficher une image dans mon JXimagepanel dans la fonction main....

    Voila mon 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
    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
     
                // récupération de l'image que l'on applique au panel
                affiche = new org.jdesktop.swingx.JXImagePanel();
                try {
                    java.awt.Image image = ImageIO.read(getClass().getResource("affiches/PIC1.JPG"));
                    affiche.setImage(image);
                    } catch (java.io.IOException ex) {
                } 
     
                }
            });
    private org.jdesktop.swingx.JXImagePanel affiche;
    Le problème c'est que "affiche.setImage(image);" me renvoie l'erreure : "non-static method setEnabled cannot be referenced in a static context"

    Si j'enlève static à "public static void main(String args[]) {" la compilation me dit qu'elle n'arrive pas a trouver la méthode main...

    Comment faire donc ?

    Merci d'avance....

    Au passage, je n'arrive pas a trouver sur le web français une expilication sur ce "static"... A quoi ça sert ???



    PS : je travail avec Matisse ...
    PS2 : si vous connaissez la méthode pour "étirer" "centrer" l'image je suis preneur (mon image est plus grande que mon jximagepanel mais j'aimerais que l'image soit réduite pour qu'elle soit juste à la taille du jximagepanel)

    EDIT : pour mon PS2 j'ai trouvé la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    affiche.setStyle(JXImagePanel.Style.SCALED);

  2. #2
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Tu dois d'abord creer une instance de ta classe avant de pouvoir utiliser ses variables membres.

    Ton code deviendrais donc quelquechose du genre:

    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
     
    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                MaClasse maClasse = new MaClasse();
                // récupération de l'image que l'on applique au panel
                maClasse.setAffiche(new org.jdesktop.swingx.JXImagePanel());
                try {
                    java.awt.Image image = ImageIO.read(getClass().getResource("affiches/PIC1.JPG"));
                    maClasse.getAffiche().setImage(image);
                    } catch (java.io.IOException ex) {
                } 
     
                }
            });
    private org.jdesktop.swingx.JXImagePanel affiche;
     
    public void setAffiche( org.jdesktop.swingx.JXImagePanel panel) {
     affiche = panel;
    }
    public org.jdesktop.swingx.JXImagePanel getAffiche() {
     return affiche;
    }

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    Voila ce que j'ai fais selon ton plan :

    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
       public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
     
                new frame_accueil().setVisible(true);
     
                frame_accueil test = new frame_accueil();
                test.setAffiche(new org.jdesktop.swingx.JXImagePanel());
     
                try {
                    java.awt.Image image = ImageIO.read(getClass().getResource("affiches/PIC1.JPG"));
                   test.getAffiche().setImage(image);
     
                    test.getAffiche().setStyle(JXImagePanel.Style.SCALED);
                    } catch (java.io.IOException ex) {
                } 
     
                }
            });
        }
     
    public void setAffiche( org.jdesktop.swingx.JXImagePanel panel) {
     affiche = panel;
    }
    public org.jdesktop.swingx.JXImagePanel getAffiche() {
     return affiche;
    }
    Ca ne marche pas : je n'ais pas de message d'erreur, mais aucune image s'affiche....



    ce que je ne comprends pas c'est pourquoi je dois créer une instance de ma classe alors que je suis dans elle même déjà .... ????
    Que l'on créer une instance de classe extèrieur pour l'apeller ok mais pourquoi instancier une classe ou l'on est dessus ?

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Essaie ca:

    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
     
    public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
     
                new frame_accueil()
     
                frame_accueil test = new frame_accueil();
                test.setAffiche(new org.jdesktop.swingx.JXImagePanel());
     
                try {
                    java.awt.Image image = ImageIO.read(getClass().getResource("affiches/PIC1.JPG"));
                   test.getAffiche().setImage(image);
     
                    test.getAffiche().setStyle(JXImagePanel.Style.SCALED);
                    } catch (java.io.IOException ex) {
                } 
     
                test.setVisible(true);
     
                }
            });
        }
     
    public void setAffiche( org.jdesktop.swingx.JXImagePanel panel) {
     affiche = panel;
    }
    public org.jdesktop.swingx.JXImagePanel getAffiche() {
     return affiche;
    }
    Tu faisait un setVisible sur un autre panel que celui que tu crée

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 162
    Par défaut
    ne marche pas non plus, je ne vois pas d'ou vien l'erreure car je n'ais pas de messages d'erreurs ...

  6. #6
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 14
    Par défaut
    Je suppose que ta classe frame_accueil, dérive de la classe JFrame...

    Si c'est le cas il faut aussi ajouter ton panel a celle ci.

    en faisant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    test.setContentPane(getAffiche());

Discussions similaires

  1. Insérer image dans div
    Par sandytarit dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 30/05/2007, 10h39
  2. insérer image dans base de données
    Par eriz dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 16/04/2007, 12h03
  3. insérer images dans nbm
    Par jessie dans le forum NetBeans
    Réponses: 1
    Dernier message: 17/01/2007, 23h32
  4. [Image] charger une image dans le main
    Par GLDavid dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 31/03/2006, 17h11
  5. [MySQL] insérer image dans bdd grace a un formulaire
    Par pod1978 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 14/03/2006, 08h34

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