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 104
| import javax.swing.*;
import java.awt.*;
import java.io.*;
public class Panneau extends JPanel
{
private Image image;
private Image im1= (new ImageIcon(Panneau.class.getResource("images/iconeAide.png")).getImage());
private Image im2= (new ImageIcon(Panneau.class.getResource("images/warning.png")).getImage());
private Graphics2D g2d;
public Panneau()
{
super();
setPreferredSize(new Dimension(500, 500));
setLayout(new GridLayout(4,7));
}
public Dimension getPreferredSize()
{
Dimension size = super.getPreferredSize();
if (image != null)
{
size.width = image.getWidth(this);
size.height = image.getHeight(this);
}
return size;
}
/**
* Efface le panneau de dessin
*
*/
public void clearPaint()
{
g2d.setColor(Color.white);
g2d.fillRect(0, 0, getWidth(), getHeight());
repaint();
g2d.setColor(Color.black);
}
/**
* @param g Objet graphique permettant de dessiner
* Definit une zone dans laquelle on va pouvoir dessiner
*/
public void paintComponent(final Graphics g)
{
super.paintComponent(g);
// initialises the image with the first paint
// or checks the image size with the current panelsize
if (image == null || image.getWidth(this) < getSize().width || image.getHeight(this) < getSize().height)
{
resetImage();
}
Rectangle r = g.getClipBounds();
g.drawImage(image, r.x, r.y, r.width + r.x, r.height + r.y, r.x, r.y, r.width + r.x, r.height + r.y, null);
}
/**
*
* Creer une zone, dans laquelle on va pouvoir mettre les images
*/
private void resetImage()
{
image = createImage(getWidth(), getHeight());
g2d = (Graphics2D) image.getGraphics();
g2d.setColor(Color.WHITE);
g2d.fillRect(0, 0, getWidth(), getHeight());
g2d.setColor(Color.BLACK);
// Creation du cadre noir
g2d.drawRect(0, 0, getWidth(), getHeight());
// Les 7 barres noires verticales
g2d.drawLine((int)((getWidth()*1)/7)+0,0, (int)((getWidth()*1)/7)+0,getHeight()+0);
g2d.drawLine((int)((getWidth()*2)/7)+0,0,(int)((getWidth()*2)/7)+0, getHeight()+0);
g2d.drawLine((int)((getWidth()*3)/7)+0,0,(int)((getWidth()*3)/7)+0, getHeight()+0);
g2d.drawLine((int)((getWidth()*4)/7)+0,0, (int)((getWidth()*4)/7)+0,getHeight()+0);
g2d.drawLine((int)((getWidth()*5)/7)+0,0,(int)((getWidth()*5)/7)+0, getHeight()+0);
g2d.drawLine((int)((getWidth()*6)/7)+0,0,(int)((getWidth()*6)/7)+0, getHeight()+0);
g2d.drawLine((int)((getWidth()*7)/7)+0,0,(int)((getWidth()*7)/7)+0, getHeight()+0);
// Les 4 barres noires horizontales
g2d.drawLine(0,(int)((getWidth()*1)/4)+0, getHeight()+0,(int)((getWidth()*1)/4)+0);
g2d.drawLine(0,(int)((getWidth()*2)/4)+0, getHeight()+0, (int)((getWidth()*2)/4)+0);
g2d.drawLine(0,(int)((getWidth()*3)/4)+0, getHeight()+0,(int)((getWidth()*3)/4)+0);
g2d.drawLine(0,(int)((getWidth()*4)/4)+0, getHeight()+0, (int)((getWidth()*4)/4)+0);
// teste image case (6,3)
g2d.drawImage(im1, 6 * 15 , 3 * 15, 15, 15,this);
}
/**
* @return L'objet graphique permettant le dessin
* Getteur de l'objet graphique servant à dessiner dans le panneau
*/
public Graphics2D getG2d()
{
return g2d;
}
} |
Partager