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

Composants Java Discussion :

Dimensionner mon JButton comme la dimension de son image


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Par défaut Dimensionner mon JButton comme la dimension de son image
    salut,
    Je veux savoir comment je peux faire pour rendre mon JButton avec la meme dimension que son image,j'utilise le setBounds mais il ne marche pas!!
    voilà mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            JPanel pbouton=new JPanel();
            JButton bnou=new JButton(new ImageIcon("src\\nouvjeu.png"));
            bnou.setBounds(5, 6,300 , 80);
            pbouton.add(bnou);
    Pour l'information,mon image nouvjeu.png est des dimensions 300,80 !
    Aussi ,si possible ,je veux que mon boutton soit, disant, "transparent" pour que je puisse voir nettement le fond de panel ou' je l'ai déjà mis (mon boutton),s'il y a du code me permet de le faire merci de me le donner.

    Merci bien!

  2. #2
    Membre averti
    Inscrit en
    Juillet 2011
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 29
    Par défaut
    voilà je essaye tout à l'heure ce code:
    classe1:ou' je créer le bouton personnalisé:
    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
     
    import java.awt.Color;
    import java.awt.GradientPaint;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.Image;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;
    import java.io.File;
    import java.io.IOException;
     
    import javax.imageio.ImageIO;
    import javax.swing.JButton;
     
     
    public class Bouton extends JButton{
     
             private String name;
         private Image img;
     
         public Bouton(String str,File bf){
                 super(str);
                 this.name = str;
     
                 try {
                         img = ImageIO.read(bf);
                    } catch (IOException e) {
                            e.printStackTrace();
                    }
     
     
         }
     
         public void paintComponent(Graphics g){
     
                 Graphics2D g2d = (Graphics2D)g;
     
                 GradientPaint gp = new GradientPaint(0, 0, Color.blue, 0, 20, Color.cyan, true);
                 g2d.setPaint(gp);
                // g2d.fillRect(0, 0, this.getWidth(), this.getHeight());
                g2d.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
     
                 g2d.setColor(Color.black);
                 g2d.drawString(this.name, this.getWidth() / 2 - (this.getWidth() / 2 /4), (this.getHeight() / 2) + 5);
     
         }
     
    }
    Et la classe2:ou' je fais applle à la classe1:
    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
     
     
    import java.awt.*;
    import java.io.File;
     
    import javax.swing.*;
     
     
    public class ImagePanel extends JPanel {
     
    	private static final long serialVersionUID = 1L;
     
    	/**
             * @param args
             */
     
     
     
    	private Image img;
     
    	public ImagePanel(Image img){
    		this.img = img;
    		JPanel ptitre=new JPanel();
            JLabel ltitre=new JLabel(new ImageIcon("src\\titrejeu.png"));
            ptitre.add(ltitre);
            add(ptitre);
     
            JPanel pbouton=new JPanel();
            pbouton.setLayout(new GridLayout(4,1));
     
           Bouton bnou=new Bouton("",new File("src\\nouvjeu.png"));
             pbouton.add(bnou);
             Bouton bop=new Bouton("",new File("src\\option.png"));
             pbouton.add(bop);
         Bouton bsco=new Bouton("",new File("src\\score.png"));
            pbouton.add(bsco);
            Bouton bquit=new Bouton("",new File("src\\quitter.png"));
            pbouton.add(bquit);
     
     
     
            add(pbouton);
     
     
     
     
    	}
     
    	public void paintComponent(Graphics g) {
    		g.drawImage(img, 0, 0, null);
    	}
     
    }
    Mais le problème ça reste le meme ou' meme plus grave , tous mes bouttons deviennent trop petits...En fait je crois que le problème devient de les méthodes getWeidth() et getHeight()!!nn?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Par défaut
    Bien le bonjour !

    Je suis sympa aujourd'hui, je t’envoie un bout de code d'une de mes applis.
    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
     
    import java.awt.Dimension;
     
     
    public class BoutonImage extends JButton implements ActionListener {
        private Image affiche ;
     
        public BoutonImage(String cheminImage, Dimension dimensionImage) 
        {
            addActionListener(this) ;
            setSize(dimensionImage) ;
            setPreferredSize(dimensionImage) ;
            affiche = new ImageIcon(cheminImage).getImage() ;
        }
     
     
        @Override
        public void actionPerformed(ActionEvent e) 
        {
            //les actions à faire en cas de clic
        }
     
        public void paintComponent(Graphics g)
        {        
            g.drawImage(affiche,0,0,getWidth(),getHeight(),this);        
        }
    }
    Et ça te fait un beau bouton de la taille que tu veux .
    Pour la transparence j'ai jamais eu à faire donc je ne sais pas te répondre... tu peux tenter un setOpaque(false).

    See U

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Il semble que le problème est lié à ton layout. SetBound modifie l'attribut size alors que la plupart des layout utilise l'attribut preferredSize. Tu peux vérifier dans la javadoc de ton layout quel attribut (preferredSize, maximumSize, minimumSize, size) il utilise.

Discussions similaires

  1. Réponses: 5
    Dernier message: 05/02/2007, 23h00
  2. Réponses: 53
    Dernier message: 12/01/2007, 21h00
  3. Réponses: 2
    Dernier message: 03/11/2006, 10h36
  4. surrement une erreur ds mon script - comme d'hab.
    Par krapoulos dans le forum Langage
    Réponses: 9
    Dernier message: 06/11/2005, 11h06

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