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

2D Java Discussion :

ajout d'un bouton sur un composant ayant une image


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut ajout d'un bouton sur un composant ayant une image
    J'aimerai pouvoir mettre un bouton sur un component ayant une image en fond.

    C'est à dire, j'ai une image et je voudrai mettre des boutons par dessus.

    faut'il mettre un container transparent par dessus l'image et y ajouter les boutons?

    Savez vous comment faire.

    merci, pour votre aide.

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Ca dépend, tu affiches ton image sur quoi comme composant ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    J'affiche mon image sur un JPanel, mais j'arrive à afficher l'image.

    le problème est avec les boutons que j'ajoute au JPanel. Au début, je ne les vois pas et ils apparaissent lorsque je passe le curseur dessus.

  4. #4
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu pourrais nous poster ton code ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    D'abord, je surcharge la méthode paint de mon panel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    panelCentre = new JPanel(){		
    			public void paint(Graphics g) {	
    				try {
    					Image image = ImageIO.read(new File("./Images/logo.jpg"));
    					g.drawImage(image, 0, 0, panelCentre.getWidth(), panelCentre.getHeight(), null);
    				} catch (IOException e) {
    					e.printStackTrace();
    				}
    			}		
    		};//panelCentre
    et ensuite, j'ajoute mes boutons.

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    tout simplement car tu a redéfini la méthode paint et non paintComponent
    Et accessoirement un petit appel à super.paintComponent(); ne serais pas de trop pour quand même afficher tes objets.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    Quand je surcharge le paintComponent, les boutons s'affichent mais l'image ne s'affiche plus.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    Il y a aussi que j'ajoute ce JPanel à un autre JPanel et non à une JFrame.

  9. #9
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Sisi ça marche en utilisant paintComponent(Graphics g)

    Exemple:

    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
     
    public class SurchargePanel extends JPanel {
     
     
    	Image back;
     
    	/**
             * @param arg0
             * @param arg1
             */
     
     
    	public SurchargePanel(String path) {
    		super();
    		try {
    			back = ImageIO.read(new File(path));
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		// TODO Auto-generated constructor stub
    	}
     
    	protected void paintComponent(Graphics arg0) {
    		// TODO Auto-generated method stub
    		super.paintComponent(arg0);
    		arg0.drawImage(back, 0, 0, this.getWidth(), this.getHeight(), null); 
    	}
    Accessoirement tu ferais mieux de ne pas recharger ton image à tous les coups car sinon ton appli va ramer sans arrêt, charge ton image au démarrage et basta comme j'ai fait

  10. #10
    Membre éprouvé Avatar de yakanet
    Homme Profil pro
    Inscrit en
    Décembre 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39

    Informations forums :
    Inscription : Décembre 2005
    Messages : 137
    Par défaut
    Ca fonctionne aussi avec ma méthode paint() (même s'il est préférable d'utiliser paintComponant pour du swing) il suffit de faire un appel avant tes lignes try/catch à super().paint(g); sinon tu n'afficheras rien d'autre que tes quelques lignes.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 70
    Par défaut
    Ok, merci à tous maintenant ça marche.

  12. #12
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Un tag résolu dans ce cas?

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

Discussions similaires

  1. Ajout d'un bouton sur une vue "Canvas"
    Par Linio dans le forum Composants graphiques
    Réponses: 10
    Dernier message: 19/09/2010, 22h16
  2. Ajout d'un bouton sur chaque ligne
    Par Victor.ZENGA dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/06/2009, 10h19
  3. Ajouter un indice sur un submit avec une image
    Par pasc06 dans le forum Langage
    Réponses: 3
    Dernier message: 21/01/2009, 14h32
  4. Bouton sur USF qui montre une image
    Par tomy7 dans le forum VBA PowerPoint
    Réponses: 2
    Dernier message: 17/04/2008, 15h46
  5. Connaitre l'ajout de méthodes/attributs sur les composants standards
    Par bubulemaster dans le forum Composants VCL
    Réponses: 3
    Dernier message: 30/01/2008, 09h36

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