Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : insere tableaux dans un rectangle drag&drop [ Multimédia / Java2D ] (hkahil)

mardi 5 août 2008 à 13:50:17 | insere tableaux dans un rectangle drag&drop

hkahil

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]

mardi 5 août 2008 à 14:18:20 | Re : insere tableaux dans un rectangle drag&drop

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

"je souhaiterais y inserer un tableaux"
>> Mais encore ?




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

mardi 5 août 2008 à 18:35:12 | Re : insere tableaux dans un rectangle drag&drop

hkahil

j'ai pas compris ta réponse?
je voudrais juste savoir comment faire pour insérer des éléments dans mon rectangle drag&drop
merci

mercredi 6 août 2008 à 00:12:46 | Re : insere tableaux dans un rectangle drag&drop

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

un rectangle (de type shape ?) ou un tableu comme tu mets dans le titre et dans ta question (je te cite : "je souhaiterais y inserer un tableaux") ?




------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO

mercredi 6 août 2008 à 02:05:51 | Re : insere tableaux dans un rectangle drag&drop

hkahil

En fait je ne sais comment faire mon but étant d'avoir des donné dans un tableaux
JTable et de pouvoir déplacer en drag&drop ce tableaux
j'avais penser a utiliser mon exemple qui donne déjà une forme rectangle que je peux déplacer   et d'y insérer le tableaux dedans comme  ça le tableaux se déplacera avec le rectangle
Ou bien
 il serais plus judicieux de créer un tableaux tout court et de lui affecter l'évènement drag&drop
merci

mercredi 6 août 2008 à 07:47:57 | Re : insere tableaux dans un rectangle drag&drop

uhrand

Je n'ai pas regarder ton code, mais ceci pourrais t'aider: DargDropTable.java

mercredi 6 août 2008 à 09:18:24 | Re : insere tableaux dans un rectangle drag&drop

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

sinon il y a un très bon exemple ICI, bon le code peut paraitre violent mais l'effet est garanti et de plus en utilisant le code (avec un chouilla d'adaptation) tu peux le faire sur tous les composants swing.

tu peux également regarder du coté de l'api swingX, qui doit surement proposer ce genre de chose (en version plus simplifié que le premier lien)


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO



Cette discussion est classé dans : public, import, side, xposition, framerect


Répondre à ce message

Sujets en rapport avec ce message

imprime trop gros [ par jackhabbot ] Bonjour à tous,je souhaite imprimer le contenu d'une fenêtre à une certaine échelle, car pour le moment lorsque j'imprime, c'est environ 2 fois plus g Appel de classes semblables [ par colruyt ] Bonjour à tous,Voici le problème qui se pose à moi :Dans ma classe principale , je fait appel à 2 classes et chacunes de celle-ci affiche le contenu d Appel d'une classe depuis une autre [ par colruyt ] Bonjour a tous ,J'ai une classe qui fonctionne bien exécutée seule par contre quand je l'appelle depuis une autre , cela ne fonctionne pas !Si quelqu' Erreur d'execution: java.lang.NullPointerException [ par amjad ] A la compilation d'un projet java3D j'obtient le message d'erreur suivant :Exception in thread "main" java.lang.NullPointerException at javax.vecmath Instruction : system.out.println [ par BSide ] Bonjour,voici un exemple de code (je débute) qui me pose des problèmes :import java.util.*;import java.math.*;import java.lang.*;import java recuperer contenu de balise xml avec sax [ par lolofx ] salut, voila, je voudrais recuprer le contenu d'une balise xml choisi voila la sourcepour info nom correspond au nom de la balisefichier au nom du fic Problème de référence de classe JTable [ par tihon ] En fait, mon but est d'afficher le résultat d'une requête dans un JTable et ensuite, en appuyant sur un bouton de récupérer, dans un premier temps, la Gros pb avec JApplet et JPanel [ par jtmarin ] Help, J'ai un gros pb que je ne comprend pas du tout avec JApplet.En gros, si j'ajoute le JPanel au moment de la méthode init(), pas de problème mais JApplet et JPanel [ par jtmarin ] Help, J'ai un gros pb que je ne comprend pas du tout avec JApplet.En gros, si j'ajoute le JPanel au moment de la méthode init(), pas de problème mais Impression du contenu d'un JTextArea sur plusieurs pages [ par criche ] Voici un programme qui me permet d'imprimer le contenu d'un JtextArea.Il est composé du programme essaiJtextArea.java, qui appelle la classe JTextArea


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Appels d'offres

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,170 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.