Bonjour j'ai recupere ce code sur le site
je souhaiterais y inserer un tableaux
pouvez vous m'aider svp
[CODE]
import java.awt.AlphaComposite;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JButton;
/**
* @author A.B.
*
*/
public class DraggableShape extends Canvas implements MouseMotionListener, MouseListener {
/** Largeur du carré */
public static final int SIDE = 200;
/** Indique si le carré est en mouvement ou non */
private boolean moving = false;
/** Abscisse du coin supérieur-gauche */
private int xPosition;
/** Ordonnée du coin supérieur-gauche */
private int yPosition;
/** Abscisse du point où on fait glisser le carré */
private int xDragg;
/** Ordonnée du point où on fait glisser le carré */
private int yDragg;
/**
* Rectangle qui représente le périmètre de la fenêtre.
* Cette attribut sert essentiellement à capter si la fenêtre a été redimensionner.
*/
private Rectangle frameRect;
/**
* Pour assurer la fluidité du mouvement du carré sans qu'il aura des troubles
* On se sert de cet attribut pour simuler la technique du double-buffering.
*/
private Image doubleBufferImage;
/**
* Crée une nouvelle instance de la classe 'DraggableShape'.
*/
public DraggableShape() {
setSize(600, 400);
frameRect = new Rectangle(401, 401);
addMouseListener(this);
addMouseMotionListener(this);
}
/**
* Quand on maintient une touche de la souris enfoncée et on fait glisser le curseur.
*/
public void mouseDragged(MouseEvent e) {
if (moving) {
xPosition = e.getX() - xDragg;
yPosition = e.getY() - yDragg;
repaint();
}
}
@Override
public void paint(Graphics g) {
// Créer un objet de type Graphics2D
Graphics2D g2 = (Graphics2D)g;
// Colorer le fond en blanc
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, frameRect.width, frameRect.height);
// Dessiner le carré en rouge
g2.setColor(Color.RED);
g2.fillRect(xPosition, yPosition, SIDE, SIDE);
// Dessiner un contour transparent en bleu pour simuler l'effet de séléction
if (moving) {
g2.setColor(Color.BLUE);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, .3f));
g2.fillRect(xPosition - 5, yPosition - 5, SIDE + 10, SIDE + 10);
}
}
@Override
public void update(Graphics g) {
if (!frameRect.equals(getBounds())) {
frameRect = getBounds();
doubleBufferImage = createImage(frameRect.width, frameRect.height);
}
// Ne pas dépasser les bords de la fenêtre
if (xPosition < 0) {
xPosition = 0;
} else if (xPosition > (frameRect.width - SIDE)) {
xPosition = frameRect.width - SIDE;
}
// Ne pas dépasser les bords de la fenêtre
if (yPosition < 0) {
yPosition = 0;
} else if (yPosition > (frameRect.height - SIDE)) {
yPosition = frameRect.height - SIDE;
}
// Dessiner sur l'image intermédiaire
Graphics imageGraphics = doubleBufferImage.getGraphics();
paint(imageGraphics);
// Afficher l'image intermédiaire
g.drawImage(doubleBufferImage, 0, 0, this);
}
public void mouseMoved(MouseEvent e) {
}
public void mouseClicked(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {
int x = e.getX();
if ((x < xPosition) || (x > (xPosition + SIDE))) {
return;
}
int y = e.getY();
if ((y < yPosition) || (y > (yPosition + SIDE))) {
return;
}
xDragg = x - xPosition;
yDragg = y - yPosition;
moving = true;
}
public void mouseReleased(MouseEvent e) {
if (moving) {
xPosition = e.getX() - xDragg;
yPosition = e.getY() - yDragg;
moving = false;
repaint();
}
}
}
[CODE]