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 :

Problème avec button et image


Sujet :

Java

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Problème avec button et image
    Salut à tous,

    J'ai un petit problème : pour tester mes compétences java j'ai commencé à faire un petit jeu.

    J'aimerais avoir un menu, pour cela j'ai commencé à mettre une image en "background" (qui s'affichait très bien...), puis j'est commencé à poser mes boutons et là j'est un problème : si je met mon bouton l'image en fond n'est plus là ! :/

    Je voudrais savoir comment mettre les 2 en même temps

    Je remercie tout ceux qui voudraient bien m'aider

    PS: j'est pas mal cherché sur internet mais ce qui sort quand je mais "java put a button on a background" c'est "swing - How to set background color of a button in Java " donc pas ce que je cherche pareil en francais

    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
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    package frame;
     
    import java.awt.Graphics;
    import java.awt.Image;
     
    import javax.swing.ImageIcon;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
     
    public class Jframe extends JFrame{ private static final long serialVersionUID = 8342554104719139670L;
    //background
        ImageIcon img = new ImageIcon("img/fond/fond.jpg");
     
        public Jframe() {
     
              this.setTitle("basicgame_framename");
              this.setSize(1300, 700);
              this.setLocationRelativeTo(null);
              this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);            
     
     
     
              //background
                this.add(new Img(img.getImage()));  
     
     
     
                  //bouton et label
              JPanel p = new JPanel();
                  JButton button;
                  button = new JButton("Start the game");
                  p.setLayout(null);
                  button.setBounds(getWidth()/2-(getWidth()/3)/2,getHeight()/2-33,getWidth()/3,66);
                  p.add(button);
     
                  getContentPane().add(p);  
     
                    //updater
                    this.setSize(1299, 699);
                    this.setSize(1300, 700);
     
                  this.setVisible(true);
        }
     
     
          //background
        public class Img extends JPanel {
            private static final long serialVersionUID = -9129537057351390955L;
            private Image img;
            public Img(Image img) {
                this.img = img;
            }
     
            public void paintComponent(Graphics g) {
     
                g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
            }
        }
     
     
     
    }
    Et le main si ca peut vous aider :

    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
    package basicgame;
     
    import javax.swing.JFrame;
     
    import frame.Jframe;
     
    public class Main {
     
        public static void main(String[] args) {
     
            Jframe f = new Jframe();
     
     
        }
     
    }

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Le panel p cache ton image. En effet, le content pane à un BorderLayout par défaut. Comme tu ajoutes le panel de type Img et le panel p au centre tous les deux, le dernier panel, donc p, est visible. Et comme il n'est pas transparent, il cache tout ce qui est derrière. Mais quand bien même serait-il transparent que ça ne fonctionnerait pas mieux : un BorderLayout ne sait gérer qu'un seul composant au centre. Donc seul p est géré et dimensionné. Le panel de type Img reste à sa taille d'origine, soit 0x0.

    Pour pouvoir superposer des composants, tu peux utiliser un OverlayLayout, que tu peux affecter au content pane de la fenêtre par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getContentPane().setLayout(new OverlayLayout(getContentPane()));
    . Le reste du code ne change pas.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hautes Alpes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Résolu !
    Merci à toi joel.drigo ta technique marche parfaitement ! je passe en résolu !

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

Discussions similaires

  1. Problème avec les Boutons Image
    Par abdoing dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/06/2007, 10h35
  2. problème avec button group
    Par afrikha dans le forum NetBeans
    Réponses: 2
    Dernier message: 15/02/2007, 19h52
  3. problème avec img_mc.loadMovie("image.jpg")
    Par cyraile dans le forum Intégration
    Réponses: 2
    Dernier message: 15/01/2007, 14h38
  4. [FLASH MX2004] Problème avec apparition d'images progressifs !
    Par °°° Zen-Spirit °°° dans le forum Flash
    Réponses: 6
    Dernier message: 18/05/2006, 08h58
  5. [Mail] Problème avec mail et image
    Par phpaide dans le forum Langage
    Réponses: 5
    Dernier message: 27/04/2006, 09h06

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