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

 Java Discussion :

Disparition de JButton


Sujet :

Java

Vue hybride

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

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut Disparition de JButton
    Bonjour,

    Je suis débutant en ihm, et je suis confronté à un problème "étrange".
    Voilà, dans les grandes lignes ce que je fais :

    1 - J'ai créé une classe qui me permet de créé un JPanel avec une image en fond

    2 - Dans une deuxième classe, je créé une objet de la classe précédente dans une nouvelle classe, et à cet objet, j'ajoute des boutons (dans mon cas, j'en ai deux).

    3-Dans une troisième classe (celle de mon main) , je créé un objet de la derniere classe, et je l'ajoute à ma fenêtre.


    Mon problème est que :
    1_A l'ouverture de ma fenêtre, seul le premier bouton apparait, je dois survoler la zone où est placée le second pour qu'il apparaissent.
    2_Quand je redimensionne la fenêtre, cette fois ci ce sont les deux boutons qui disparaissent (je dois à nouveau survoler la zone pour qu'on les voit).

    Autre précision, je place mes boutons au pixel près, et il est important pour moi de bien séparer les 3 étapes.

    Merci de votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    299
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 299
    Par défaut
    Est-ce que le problème est toujours présent si tu n'affiches pas l'image de fond de ton panel ?
    Sinon montre nous ton code, sinon ca risque être compliqué de t'aider.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Voici mon code :

    Ma classe pour mettre l'image dans le 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
     
    import java.awt.*;
    import java.awt.image.BufferedImage;
    import java.io.*;
     
    import javax.imageio.ImageIO;
    import javax.swing.*;
     
    public class ImageFond extends JPanel{
     
        public ImageFond(){
            this.setPreferredSize(new Dimension(943, 600));
        }
     
        public void paint(Graphics g) {
            try {
                BufferedImage image = ImageIO.read(new File("lego1.jpg"));
                g.drawImage(image, 0, 0, null);
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    Ma classe qui utilise la précédente :

    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
    import java.awt.event.*;
    import javax.swing.*;
     
    public class JPanel_Demarrage extends JPanel{
     
        private JButton jb1 = new JButton("Commencer une partie");
        private JPanel fond = new ImageFond();
     
     
        public JPanel_Demarrage(){
     
            fond.setLayout(null);
     
            jb1.setBounds(700,100, 200, 45);
            jb1.setIcon(new ImageIcon("lego.jpg"));
            jb1.setFocusPainted(false);
            jb1.setBorderPainted(false);
            fond.add(jb1);
            jb1.setVisible(true);
     
            jb3.setIcon(new ImageIcon("lego1.jpg"));
            jb3.setBounds(700,300, 200, 45);
            jb3.setFocusPainted(false);
            jb3.setBorderPainted(false);
            fond.add(jb3);
     
            this.add(fond);
     
        }
    Enfin mon main :

    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
    import java.awt.*;
     
    import javax.swing.*;
     
    public class IHMRail extends JFrame {
     
        public static void main(String[] args){
            IHMRail ihm = new IHMRail();
            ihm.setVisible(true);
        }
     
     
     
        public IHMRail(){
            this.setTitle("LEGO");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     
            CardLayout card = new CardLayout();
            JPanel source = new JPanel(card);
     
            JPanel jpd = new JPanel_Demarrage();
            JPanel jpi = new JPanel_Initialisation_Joueurs2();
     
            source.add(jpd, "demarrage");
            source.add(jpi, "initialisation");
     
     
     
            this.add(source);
            this.pack();
            this.setLocationRelativeTo(null);
        }
     
    }
    J'ai essayé : "this.add(jpd);" au lieu de "this.add(source);" et ma fenetre n'affichait rien...

  4. #4
    Membre chevronné Avatar de javaNavCha
    Homme Profil pro
    EKG Group
    Inscrit en
    Juillet 2009
    Messages
    311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : EKG Group
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2009
    Messages : 311
    Par défaut
    Salut LF787
    Il parait que c'est un problème de dimensions des composants.
    S'il y a une interférence de deux composants le dernier ajouté sera affiché...
    De plus un conseil :
    Évites les setLauyout(null) !!
    Je t'invite à voir ça http://www.developpez.net/forums/d10...ffichage-java/
    (à partir de la 11e discussion)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    Le problème ne vient pas du "setLayout(null);"
    En effet, j'ai essayé de faire un FlowLayout pour placer mes boutons, mais le problème reste le même. Quand J'ouvre la fenêtre, seul le premier bouton est en place et je dois survoler la zone où se trouve les autres pour les voir apparaitre..
    Deplus, quand je n'utilise pas mon image de fond, je n'ai aucun problème.
    Je pense donc que le problème vient de ma classe où je créé un JPanel avec mon image

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 7
    Par défaut
    C'est bon j'ai résolu mon problème.
    J'ai refait ma première classe (ImageFond), et maintenant tout marche comme il faut !
    Merci de votre aide

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

Discussions similaires

  1. disparition activeX calendrier
    Par djool dans le forum Access
    Réponses: 10
    Dernier message: 26/01/2005, 12h31
  2. [debutant] ajouter ImageIcon dans un Jbutton
    Par agugu dans le forum Composants
    Réponses: 4
    Dernier message: 25/04/2004, 22h40
  3. [GDI] Disparition d'un Bouton...
    Par Strider dans le forum MFC
    Réponses: 4
    Dernier message: 20/02/2004, 08h50
  4. Comment redimensionner un jbutton ?
    Par Ares dans le forum JBuilder
    Réponses: 13
    Dernier message: 29/09/2003, 16h42
  5. Disparition d'un objet
    Par Francky033 dans le forum DirectX
    Réponses: 2
    Dernier message: 14/07/2003, 15h44

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