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 :

image de fond


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut image de fond
    Besoin de lumières...

    voici ce qui se trouve dans les FAQ java
    public class MonPanel {
    /** variable de classe contenant l'image à afficher en fond */
    private Image bg;
    /** Surcharge de la fonction paint() pour afficher notre image */
    public void paint(Graphics g) {
    g.drawImage(bg,0,0,null);
    }
    }
    Il est dit aussi :
    Note :
    Vous pouvez placer le composant dans la JFrame en utilisant la méthode setComponentPane(moncomposant).
    1. Mon compilateur ne me propose pas la methode setComponentPane ... devrais je faire un extends ? Si oui , lequel ?
    2. Que doit on placer entre les parenthese de la fonction ?

    merci d'avance, je tourne en rond depuis un certain temps maintenant et je commence à desespérer

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Citation Envoyé par horkets
    1. Mon compilateur ne me propose pas la methode setComponentPane ... devrais je faire un extends ? Si oui , lequel ?
    Je pense que ça devrait être setContentPane (qui est là si tu fais hériter ta classe de JFrame)
    Citation Envoyé par horkets
    2. Que doit on placer entre les parenthese de la fonction ?
    Eh bien, ça doit être le composant qui doit occuper le "fond" de ta fenetre. En effet, chaque JFrame contient par défaut un Container, dans lequel normalement tu places tout le contenu de ta fenetre. Si tu veux avoir une image de fond, le plus simple est de créer un JPanel qui dessine cette image (MonPanel, pour reprendre l'exemple de la FAQ) et de le mettre en tant que ContentPane (avec la méthode setContentPane).
    Pour résumer, ce que tu dois mettre en argument de la méthode doit être une instance de ton panel qui dessine ton image de fond...

  3. #3
    Membre éclairé Avatar de horkets
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    326
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 326
    Par défaut
    merci Marcin,

    J'essaierai cela dès demain, j'espere que cela fonctionnera du premier coup !
    Donc si je comprends bien ton explication, je devrais obtenir un truc du genre :

    (avec un peu d'imagination)

    --- --- --- gridPanel de bouton(transparents)
    _________ sur un JPanel(transparent)
    _________ sur un JPanel avec image de fond(en tant que contentPane)

    ... ?

    Me trompe je ?

    => Est ce là la seule façon de superposer 2 JPanel ???

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 128
    Par défaut
    Euh je dirais oui et non....

    En fait ta JFrame, dès le départ, contient un Panel (contentPane). A ce panel tu rajoutes tous les autres panels dont tu peux avoir besoin. En occurence, je crois pas que aies besoin de ton panel transparent... Si tu fais (dans ta Jframe)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    MonPanelFond panelFond = new MonPanelFond();
    setContentPane(panelFond);
     
    JPanel panelBoutons = JPanel(new GridLayout(5,5));
    getContentPane().add(panelBoutons);
    tu obtiendras une situation de ce style :
    --- --- --- gridPanel de bouton(transparents)
    _________ sur un JPanel avec image de fond(en tant que contentPane)

    Quant à la superposition de panel, chaque fois que rajoutes un panel à un autre (avec un add par exemple), le nouveau panel sera superposé (au niveau visuel) à l'ancien. Au niveau de l'application, c'est organisé de façon arborescente (chaque panel à un composant parent, ainsi qu'un certain nombre de composants fils)

Discussions similaires

  1. Image de fond pour xdm
    Par BloodyImp dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 15/09/2004, 16h47
  2. boîte de dialogue avec image de fond + texte
    Par Eugénie dans le forum MFC
    Réponses: 13
    Dernier message: 31/08/2004, 13h32
  3. image de fond à la taille de la form
    Par littledoudou dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/01/2004, 14h15
  4. Comment mettre une image en fond de JFrame
    Par marc26 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2004, 17h57
  5. [VB6] [Graphisme] Image de fond stretchable dans mdiform
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 17/02/2003, 10h45

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