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

Agents de placement/Fenêtres Java Discussion :

Afficher Images dans différentes Jframes


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut Afficher Images dans différentes Jframes
    Bonjour

    J'ai une petite question :

    J'ai une classe Panel qui gère l'affichage des images et deux classes différentes (chambre et salon) pour afficher des images.

    ma question est.....

    Puis-je afficher l'image de la chambre dans la classe chambre à partir du Panel et l'image du salon dans la classe salon à partir de la classe Panel aussi ?
    (car pour l'instant avec ce que j'ai fait ça ne marche pas)

    Je ne sais si vous comprenez bien..

    Je suis assez désespéré ! ça se trouve aussi que ma façon de penser est mauvaise !

    Merci beaucoup d'avance pour vos éclaircissements.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    Bonjour,

    Si j'ai bien compris votre question, "Panel" devra être une "interface" et non pas une "class".

    Exemple :

    Panel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    package pack2;
     
    import javax.swing.ImageIcon;
     
    public interface Panel {
     
    public final static ImageIcon ImageSalon = new ImageIcon(Salon.class.getResource("salon.png"));
    public final static ImageIcon ImageChambre = new ImageIcon(Chambre.class.getResource("chambre.png"));
     
    }
    et sur la classe "Salon" (même chose pour la classe "Chambre")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ..
    		JLabel ImageSalon = new JLabel();
    		ImageSalon.setIcon(Panel.ImageSalon);
    ..
    j'espère que ça t'aidera...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut
    Bonjour,

    votre solution est intéressante cependant j'utilise des méthodes dans ma classe Panel et il me semble que les interfaces n'acceptent pas les méthodes..
    Voici ce que j'ai fait pour l'instant :

    La classe Panel

    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
     
    public class Panel extends JPanel {
     
    	private Image chambre1;
     
    	public Panel() {
    		try {
    			chambre1 = ImageIO.read(newFile("./images/chambre.jpg"));
     
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    	public void paint(Graphics g) {
     
    		super.paintComponent(g);
     
    		g.drawImage(chambre1, 0, 0, (chambre1.getWidth(this)),
    				(chambre1.getHeight(this)), this);
                    }
    }
    La Classe chambre
    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
     
    public class chambre extends JFrame {
     
    	private Panel graphic = new Panel();
     
    	/**
             * Constructeur de la classe niveau1
             */
    	public chambre() {
     
    		setTitle("Escape Room");
    		setSize(812, 420);
    		this.getContentPane().add(graphic);
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setResizable(false);
    		this.setVisible(true);
     
    	}
     
    }
    Peut être que ma façon de raisonner a été fausse et que vous avez raison mais si il y a une autre solution que celle que vous avez proposer ça me rendrait heureux

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    essai ça :

    Panel :
    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
     
    public class Panel extends JComponent {
    	/**
             * 
             */
    	private static final long serialVersionUID = 1L;
     
    	private BufferedImage image;
    	private double dim;
     
    	public Panel(String choix) {
    		try {
    		if(choix.equals("chambre")){
    			image = ImageIO.read(new File("./images/chambre.png"));
    		}else{
    			image = ImageIO.read(new File("./images/salon.png"));
    		}
    		dim = (double)image.getWidth()/image.getHeight();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    	protected void paintComponent(Graphics g) {
    		 g.drawImage(image, 0, 0, getWidth(), (int)(getWidth()/dim), null);
    	}
    }
    chambre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class chambre extends JFrame {
    	/**
             * Constructeur de la classe niveau1
             */
    	public chambre() {
     
    		setTitle("Escape Room");
    		setSize(812, 420);
    		this.setContentPane(new Panel("chambre")); 
    		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		this.setResizable(false);
    		this.setVisible(true);
    	}
    }

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 5
    Par défaut
    Merci beaucoup ça marche !
    Je ne sais pas si j'aurais pensé à ça, pourtant ça m'avait l'air évident maintenant que je regarde haha

    Bonne journée

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    je vous en prie

    si c'est OK, n'oubliez pas le bouton "résolu"

Discussions similaires

  1. [Résolu]Afficher une image dans un JFrame!
    Par iVarlix dans le forum SWT/JFace
    Réponses: 0
    Dernier message: 13/09/2014, 13h31
  2. Afficher image dans différents grid
    Par papotame dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 05/12/2013, 18h18
  3. afficher une image dans un jframe
    Par nesrine18 dans le forum NetBeans
    Réponses: 3
    Dernier message: 19/03/2010, 18h03
  4. Afficher une image dans une JFrame
    Par vince351 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 25/01/2007, 19h32
  5. [JFrame] affichage de component et d'image dans une JFrame
    Par Joeleclems dans le forum Agents de placement/Fenêtres
    Réponses: 8
    Dernier message: 08/10/2004, 17h17

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