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 :

JLayeredPane et bouton


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 JLayeredPane et bouton
    Bonjour,

    J'essaie de placer un JLayeredPane de 2 couches dans une fenetre.
    Sur la premiere couche je place un panel sur lequel je dessine une grille.
    sur la deuxieme couche(celle qui sera au dessus) je crée un gridLayout de boutons.
    ->Chaque bouton créé reçois un ActionListener, et est ajouter dans la grille.

    En lançant le programme, la fenetre s'affiche.
    Elle contient bien la grille dessinée (couche -1), seulement je dois cliquer une première fois sur le grille pour voir apparaitre la seconde
    et
    sur chaque case du gridLayout sur laquelle je pourrais passer avec le pointeur de la souris, une image apparait apparait ou disparait ...
    exemple ici : Nom : JLayeredPaneCapture.jpg
Affichages : 128
Taille : 87,6 Ko

    Serait ce du au fait que les bouton sont munis d'un actionListener?
    Peut etre devrais je utiliser un glassPane sur lequel placer les ecouteurs ... ?

    Merci d'avance à ceux ou celles qui pourront m'eclairer à ce sujet


  2. #2
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Bonjour,

    J'ai beau réfléchir, je ne vois pas du tout en quoi le JLayeredPane peut t'être utile. La deuxième couche va cacher la première, et ça ne te servira pas à grand chose, à moins que j'aie mal compris. Tu pourrais détailler ce que tu voudrais avoir comme rendu ?
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  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
    En fait, comme le layeredPane me permet de superposer des couches l'une sur l'autre, je me suis dis que c'etait le meilleur moyen pour superposer une image et un panel de boutons.
    J'avais précédemment essayé de créer un panel avec un gridLayout dont le fond est une image ,mais cela n'a jamais fonctionné , je ne voyais jamais l'image en dessous du gridLayout malgré que le gridLayout etait formé de boutons transparents ...
    j'avais soit une image sans grid, soit un grid sans image ...
    je cherche toujours la solution, alors merci d'avance pour tout autres renseignements


  4. #4
    Membre Expert
    Avatar de xavlours
    Inscrit en
    Février 2004
    Messages
    1 832
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 1 832
    Par défaut
    Ok, alors je te conseille de repartir sur l'idée du JPanel sur lequel est dessinée une image. Le JLayeredPane ne résoudra aucun problème de transparence.

    Pour dessiner l'image, vérifié dans la FAQ si tu t'y prenais bien. Pour rendre les JButton transparents, à priori j'essaierais bien ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    monJButton.setOpaque(false);
    //ou bien
    Color back = new Color(0, 0, 0, 0);
    monJButton.setBackground(back);
    "Le bon ni le mauvais ne me feraient de peine si si si je savais que j'en aurais l'étrenne." B.V.
    Non au langage SMS ! Je ne répondrai pas aux questions techniques par MP.
    Eclipse : News, FAQ, Cours, Livres, Blogs.Et moi.

  5. #5
    Gfx
    Gfx est déconnecté
    Expert confirmé
    Avatar de Gfx
    Inscrit en
    Mai 2005
    Messages
    1 770
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 770
    Par défaut
    Non, pour rendre un bouton transparent il faut appeler button.setContentAreaFilled(false).

  6. #6
    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
    Non, pour rendre un bouton transparent il faut appeler button.setContentAreaFilled(false).
    OK. Donc setOpaque(false) ne rend pas le bouton reellement transparent.
    J'essaierai cela ce soir.

    Mais comment se fait il que j'obtienne un affichage aussi réactivement bizarre (voir premier poste) ?

    Cela devrait théoiquement se passer comme avec une page web, un fond et du texte par dessus ... sauf que dans mon cas, ce sont des boutons transparents ...

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. redémarrer un prog à partir d'un bouton
    Par yokito dans le forum Langage
    Réponses: 5
    Dernier message: 06/09/2002, 13h19
  3. Réponses: 2
    Dernier message: 31/08/2002, 14h00
  4. Bmp pour boutons
    Par Fizgig dans le forum Outils
    Réponses: 5
    Dernier message: 22/08/2002, 10h56
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 13h12

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