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;}
} |
Partager