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 :

Débuts laborieux avec JPanel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut Débuts laborieux avec JPanel
    Bonjour à tous et à toutes,
    Je suis actuellement en stage en entreprise, et je dois m'attaquer à des petites taches sur un logiciel écrit en java.
    Je cherche à créer un nouveau Jpanel dans un premier temps pour ensuite y insérer une miniaturisation d'image.
    Malheureusement, je suis bloqué à la phase de création de mon Panel.

    voici ma classe:
    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
     
    import java.awt.Color;
    import java.awt.Graphics;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
     
    public class JImagePanel extends JPanel
    {
    	public JPanel panel = new JPanel();
    	// Initialisation du serial
    	public static final long serialVersionUID = 2724980460740151616L;
        /** Label. */
        public JLabel label = null;
        //Initialisation de la classe 
        public JImagePanel()
        	{
    		super();
    		System.out.println("je suis dans le panel");
    		initialize();
        	}
        //Initialisation des paramètres
    	public void initialize()
    		{
    		System.out.println("je regle mon panel");
    		//dimensions
    		panel.setSize(600, 600);
    		// bordures
    		panel.setLayout(null);
    		//couleurs font defaut
            panel.setBackground(Color.white);
            JLabel label = new JLabel();
            System.out.println("j'ai fini de le regler");
    		}
    	public void visible ()
    	{
    		System.out.println("Et je vois mon panel");
    		panel.setVisible(true);
    	}
    	//Initialisation de la couleur de font
    	public void paintComponent(Graphics gc)
    		{
    		 gc.setColor(Color.green);
    		}
    }
    et j'appelle ma classe comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JImagePanel initialize = new JImagePanel();
    initialize.visible();
    Tous mes messages "println" apparaissent dans la console durant la mise en marche du logiciel mais rien ne s'affiche, pas une seule fenêtre.

    Quelqu'un aurait un une solution pour un étudiant en détresse ?
    Merci par avance de votre aide.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Tu n'as visiblement pas compris ce qu'est l'héritage: replis donc attentivement tes cours de conception objet.

    Ta classe JPanelImage hérite de JPanel. Elle est donc un JPanel.

    Il faut donc que tu surcharges les méthodes de la classe parente, et que tu les appelles sur l'objet courant (this), qui n'a pas besoin de contenir un JPanel (il en est un).

    Hors ce que tu fais, c'est avoir une variable de type JPanel dans ta classe, et appliquer des méthodes dessus... Ton problème vient du fait que tu confonds ton objet JPanelImage (qui est un JPanel) et le JPanel contenu dans ta classe.

    Remets ça au clair et ça se passera tout de suite beaucoup mieux.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Il faut aussi ajouter ton JImagePanel à une JFrame (une fenêtre).

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut
    Merci pour vos réponses.

    J'ai suivi vos conseils en surchargeant ma classe telle que
    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
    import java.awt.Color;
    import java.awt.Graphics;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
     
     
    public class JImagePanel extends JPanel
    {
    	public static final long serialVersionUID = 2724980460740151616L;
    	JLabel label = null;
     
    	public void JImagePanel()
    	{
    	//super();
    	System.out.println("je suis dans le panel");
    	initialize();
    	}
     
    	public void initialize()
    	{
        this.setSize(10, 18);
        this.setLayout(null);
        this.setBackground(Color.white);
        this.setVisible(true);
        System.out.println("le panel est créé");
    	}
    }
    Ai-je bien suivi les consignes ?
    Je rentre bien dans ma classe puisque dans ma console je peux lire mon dernier println.
    Reste à préçiser que j'ai déjà défini mon emplacement dans la classe d'affichage du dit logiciel.(Panel1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    layout.add(JImagePanel,OculusLayout.WANT_STRETCHED, OculusLayout.WANT_STRETCHED);
    et j'appelle ma classe JImagePanel dans la classe secondaire (Panel2) comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    JImagePanel initialize = new JImagePanel();
    initialize.JImagePanel();
    Mais lorsque j'enclenche l'action de selection qui devrait déclencher mon panel, rien de visible ne se passe sur mon écran mais je vois que je rentre dans la classe dans ma console.

    PS pour CyberChouan, j'aurai du mal à réviser mes cours puisque je n'ai jamais programmé en Java que ce soit dans mon parcours scolaire ou mes projets personnels. Me cassant les dents sur cette mission de mon entreprise , Je m'en retourne vers vous en désespoir de cause.
    (Qui a dit au fond de la salle que les cours de BTS devrait contenir de la programmation objet? j'ai entendu !!!)

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    N'oublie pas aussi de rendre visible ta JFrame dans laquelle se trouvera ta JPanel

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 8
    Par défaut
    La Jframe est visible puisque c'est la même que celle qui affiche d'autres informations, je ne pense pas que ça vienne de là...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. debut laborieux avec DbExperss
    Par Benbleu dans le forum Bases de données
    Réponses: 8
    Dernier message: 17/11/2011, 11h14
  2. Début laborieux avec $.post
    Par yann18 dans le forum jQuery
    Réponses: 1
    Dernier message: 08/05/2010, 00h46
  3. Réponses: 4
    Dernier message: 21/03/2010, 17h29
  4. JDialog avec JPanel variable
    Par Orian dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 26/03/2007, 20h27
  5. Débuts laborieux d'oracle
    Par Mydriaze dans le forum Oracle
    Réponses: 9
    Dernier message: 04/12/2006, 17h09

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