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 un fond en arrière plan avec des boutons


Sujet :

Agents de placement/Fenêtres Java

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut Afficher un fond en arrière plan avec des boutons
    Bonjour,
    je sais que je ne suis pas le premier à demander cette aide, mais pour l'instant j'ai réussi à afficher l'image, mais par contre on ne vois plus mes boutons en premier plan.


    Voilà 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
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
     
    public class Consultation extends JFrame implements ActionListener
    {
      JPanel Fen = new JPanel();
      JTextField txt_ca = new JTextField(8);
      JLabel label = new JLabel();
      JButton bt = new JButton();
      Image img;
     
      public void paint(Graphics g)
      {
        super.paint( g );
        img = getToolkit().getImage("./graphique.png");
        g.drawImage(img,70,20,this);
     
      }  
     
      public Consultation()
      {
        //Parametrage du graphique
        setSize(800,500);   
        setTitle("Nouvelle simulation");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container Fen = getContentPane();
        Fen.setLayout(null);
        setResizable(false);
     
        //img = getToolkit().getImage("./graphique.png");   
     
        //Montant du chiffre d'affaires
        label.setText("texte");
        label.setBounds(10,20,200, 23);
        Fen.add(label);
        txt_ca.setBounds(235,55,102, 23);
        Fen.add(txt_ca);
     
        //Bouton
        bt.setText("Suivant");
        bt.setBounds(10,20,80, 23);
        Fen.add(bt);
        bt.addActionListener(this);
     
        setVisible(true);
      }
     
     
      public void actionPerformed(ActionEvent e)
      {
              codes........
      }
    }

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Tu n'ajoute jamais ton JPanel Fen à la JFrame.

    Essaie ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ...
    //Bouton 
    bt.setText("Suivant"); 
    bt.setBounds(10,20,80, 23); 
    Fen.add(bt); 
    bt.addActionListener(this); 
     
    .getContentPane().add(Fen);
    setVisible(true);
    ça devrait marcher

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    arf, ca ne marche toujours pas, la compilation marche mais lorsque je l'exécute il me génère une ereur maintenant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    adding container's parent to itself

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2003
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 18
    Points : 16
    Points
    16
    Par défaut
    Excuse moi, j'avais lut trop vite ton code
    Essaie ça:
    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
     
    import javax.swing.*; 
    import java.awt.*; 
    import java.awt.event.*; 
     
    public class Consultation extends JFrame implements ActionListener 
    { 
      JPanel Fen = new JPanel(); 
      JTextField txt_ca = new JTextField(8); 
      JLabel label = new JLabel(); 
      JButton bt = new JButton(); 
      Image img; 
     
      public void paint(Graphics g) 
      { 
        super.paint( g ); 
        img = getToolkit().getImage("./graphique.png"); 
        g.drawImage(img,70,20,this); 
     
      }  
     
      public Consultation() 
      { 
        //Parametrage du graphique 
        setSize(800,500);    
        setTitle("Nouvelle simulation"); 
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     
        //ici j'ai viré la ligne récupérant le ContentPane dans Fen
     
        Fen.setLayout(null); 
        setResizable(false); 
     
        //img = getToolkit().getImage("./graphique.png");    
     
        //Montant du chiffre d'affaires 
        label.setText("texte"); 
        label.setBounds(10,20,200, 23); 
        Fen.add(label); 
        txt_ca.setBounds(235,55,102, 23); 
        Fen.add(txt_ca); 
     
        //Bouton 
        bt.setText("Suivant"); 
        bt.setBounds(10,20,80, 23); 
        Fen.add(bt); 
        bt.addActionListener(this); 
     
        //modif par Benet
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(Fen, BorderLayout.CENTER);
     
     
        setVisible(true); 
      } 
     
     
      public void actionPerformed(ActionEvent e) 
      { 
              codes........ 
      } 
    }
    Pas le temps d'essayer ...

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    lol, en faite ca me génère toujours la même erreur, par contre si je dessine une ligne à la place de l'image, les boutons et labels sont bien en premier plan, c'est ca que je ne comprend pas..

    la ligne est faite comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public void paint(Graphics g)
      {
        super.paint( g );
        g.drawLine(50,20,50,200);
     
      }

  6. #6
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    arf personne pou m'aider.

  7. #7
    KKI
    KKI est déconnecté
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Comme ton composant est un container tu ne dois pas dessiner ton image dans paint(Graphics) mais dans paintComponent(Graphics).

    http://java.sun.com/docs/books/tutor.../concepts.html

  8. #8
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    merci pour l'aide mais ça ne marche toujours pas, l'image ne s'affiche plus, même avec un super.paintComponent(g);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.paintComponent(g);
    ou un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    super.paintComponents(g);

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    esaie ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     public void paint(Graphics g){
            g.drawImage(bufferedImage,0,0, image.getIconWidth(), image.getIconHeight(),this);
            super.paint(g);
            super.setOpaque(false);
     
         }

    Chez moi ca marche..

  10. #10
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    Désolé, mais le "setOpaque(false)" ne fonctionne pas, de même pour "bufferedImage" et image.getIconWidth().

  11. #11
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Vas faire un petit tour sur la faq, cest expliqué :

    http://<br /> http://java.developpe..._fenetre<br />

    Voila n'hésite pas si tu as un soucis..

  12. #12
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    en faite je vois pas pourquoi il faudrait faire un bufferredimage, sinon pour le setOpaque, il ne l'accepte pas pendant la compilation, et il est en italique sous JBuilder.

  13. #13
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Autant pour moi,je travaillais sur un JPanel et non sur une JFrame..
    Etends la classe JComponent en redéfinissant la méthode paint et ensuite tu le définis comme le componenet de ta JFrame avec la méthode setContentPane(moncomposant).

  14. #14
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    ok, dernière question, est-ce que tu pourrai m'expliquer comment utiliser la méthose setComponentPane(moncomposant), j'ai pas trop saisi cette partie, en faite j'ai crée une classe qui ne contient que l'image en fond comme dans la faq, et après j'ai pas compris sur le jframe.

    merci

  15. #15
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 95
    Points : 74
    Points
    74
    Par défaut
    Dans ta Frame, tu fais un setContentPane(new TaClasse());

  16. #16
    Candidat au Club
    Inscrit en
    Mars 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 9
    Points : 2
    Points
    2
    Par défaut
    merci pour l'info, c'est juste que maintenant je ne vois plus rien sur la frame, mais bon j'ai pas trop le temps pour l'instant je verrai ça dans la semaine.

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

Discussions similaires

  1. probleme de mettre une image en arriére-plan avec le JFrame
    Par fateh_mansori dans le forum NetBeans
    Réponses: 4
    Dernier message: 21/03/2010, 20h12
  2. Réponses: 1
    Dernier message: 15/06/2008, 12h32
  3. [Win32][D7] TMemo : afficher une image en arrière plan
    Par Benjamin GAGNEUX dans le forum Delphi
    Réponses: 34
    Dernier message: 12/02/2007, 17h47
  4. Afficher le résultat d'une requête avec des côtes
    Par sweet_hell dans le forum Langage SQL
    Réponses: 4
    Dernier message: 27/10/2006, 10h32

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