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 :

Adapter taille de JButton à l'image


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Points : 16
    Points
    16
    Par défaut Adapter taille de JButton à l'image
    Bonjour à tous!

    Je voulais savoir s'il existait une méthode qui permette d'adapter la taille des boutons aux images qu'ils contiennent ou l'inverse. Ceci parce que je suis en train de coder un jeu de cartes et j'ai décidé de mettre toutes les cartes dans des boutons qui constituent les mains des joueurs et le tapis. Le problème est que les images sont trop petites pour les boutons et qu'elles sont au milieu du bouton ce qui esthétiquement n'est pas très agréable.

    J'ai cherché sur internet des solutions mais je n'ai rien trouvé de vraiment intéressant. Y a-t-il une façon de le faire en utilisant par exemple setpreferredsize? Comment serait-il possible d'adapter la syntaxe pour que ça fasse exactement ce que je veux?

    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Salut, voici une classe qui fait exactement ce que tu veux.

    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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    import java.awt.*;
    import java.awt.geom.*;
    import javax.swing.*;
    import javax.swing.border.Border;
    public class BtMenuCoul extends JButton {
     
     
    	private String image="";
    	private int tx[] = new int[4];
    	private int ty[] = new int[tx.length];
    	private GeneralPath shape = new GeneralPath(GeneralPath.WIND_EVEN_ODD,
    			tx.length);
    	private int w; // Largeur voulue
    	private int h; // hauteur voulue
     
    public BtMenuCoul(int vw,int vh) {
     super();
     w=vw;
     h=vh;
     // Initialisation
     setLayout(null);
     setSize(w,h);
     Dimension size = new Dimension(w,h);
     setPreferredSize(size);
     setMaximumSize(size);
     setMinimumSize(size);
     setOpaque(false);
      forme();
     setContentAreaFilled(false);
     
     }
     
    public void forme() {
     
    	tx[0]=0;
    	ty[0]=0;
     
    	tx[1]=w;
    	ty[1]=0;
     
    	tx[2]=w;
    	ty[2]=h;
     
    	tx[3]=0;
    	ty[3]=h;
     
    	shape.reset();
    	shape.moveTo(tx[0], ty[0]);
    	 for (int i=1;i<tx.length;i++){	shape.lineTo(tx[i], ty[i]);}
    	 shape.closePath();
     
    }	
     
     
     
     
     
     protected void paintComponent(Graphics g) {
     
    	 Graphics2D g2 = (Graphics2D) g;
    	 Image img=new ImageIcon(image+".png").getImage();
    	 Border border =BorderFactory.createRaisedBevelBorder();
    if (getModel().isArmed()) {
     
     // La tu peux modifier l'affichage lorsque qu'on clique sur le bouton 
     
     
     } else {
     
     // et ici lorsque qo'on ne clique pas
     
     }
     
     
     
     
    // La ligne ci dessous défini ton image dans les proportions exactes du bouton
    g2.drawImage(img, 0, 0, w, h, null, null);
    g2.dispose();
     }
     
     protected void paintBorder(Graphics g) {
    // ici eventuellement gérer les bordures
     }
     
     public boolean contains(int x, int y) {
     
     if (shape == null || !shape.getBounds().equals(getBounds())) {
    	 forme();
     
     
     }
     
     return shape.contains(x, y);
     
     }
     
     public String getImage(){return image;}
    // image contient le chemin de ton image
     public void setImage(String s){image=s;}
     
    }
    tu appelles ton constructeur avec w et h voulue et tu défini le chemin de ton image avant l'affichage et ça passe sans soucis.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Janvier 2013
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Janvier 2013
    Messages : 36
    Points : 16
    Points
    16
    Par défaut
    C'est super. Je n'en demandais pas autant

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    84
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 84
    Points : 82
    Points
    82
    Par défaut
    Ben, j'étais juste en train de travailler dessus lorsque j'ai lu ton message alors.... Autant que ça serve....

Discussions similaires

  1. adapter taille image à une zone sans scrollbar
    Par awalter1 dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 10/03/2012, 18h34
  2. adapter taille d'une image en fond d'écran
    Par Stéph utilisateur d'acces dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 30/11/2009, 19h47
  3. Réponses: 4
    Dernier message: 02/02/2009, 17h21
  4. Adapter le chargement d'une image à la taille d'un MovieClip
    Par jpboogie dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 29/01/2009, 18h35
  5. [WD12] Adapter taille image à celle d'un champ image
    Par bruce207 dans le forum WinDev
    Réponses: 5
    Dernier message: 20/11/2008, 14h47

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