begin process at 2010 02 10 10:09:26
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Java

 > 

Archives

 > 

Divers

 > 

Au sujet d'un traçage de ligne avec Drawline


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Au sujet d'un traçage de ligne avec Drawline

vendredi 27 janvier 2006 à 18:04:36 | Au sujet d'un traçage de ligne avec Drawline

rastaprogram


Voila, j'ai fais un petit prog qui trace des lignes toute bete. Avec une pression sur le bouton de la souris je crée la ligne et  ensuite elle s'agrandit au fur et a mesure que le curseur bouge dans la fenêtre. Une fois le bouton de souris relaché, la ligne est créée.
Le pb est lorsque je veux  dessiner une ligne oblique, avec mon programme elle ne se dessine que du haut gauche vers le bas droit.

Voici mon Code car les explications ne sont pas très clair (dsl !!!).


import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.*;
public class Ligne extends JPanel{
     
        int xDep,yDep,xArr,yArr;
        int x,y;

        public Ligne(){
            setLayout(new BorderLayout());
            addMouseListener(new PointeDessin());
            addMouseMotionListener(new BougeDessin());
        }

        public void paint(Graphics g){
            //super.paint(g);
            g.setColor(Color.red);
            g.drawLine(x,y,getWidth()-1,getHeight()-1);
        }
       
        public class PointeDessin  implements MouseListener{
           

            public void mousePressed(MouseEvent pointeur) {
                xDep = pointeur.getX();
                yDep = pointeur.getY();
            }
       
            public void mouseClicked(MouseEvent arg0) {}
            public void mouseReleased(MouseEvent arg0) {}
            public void mouseEntered(MouseEvent arg0) {}
            public void mouseExited(MouseEvent arg0) {}
        }
       
        public class BougeDessin implements MouseMotionListener{

            public void mouseDragged(MouseEvent pointeur) {
                xArr = getX()+(pointeur.getX()-xDep);
                yArr = getY() + (pointeur.getY()-yDep);
                setBounds(xArr,yArr,getWidth(),getHeight());
                repaint();
            }

            public void mouseMoved(MouseEvent arg0) {}
        }
}




import java.awt.*;
import java.awt.event.*;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class ZoneDeDessin extends JPanel{

    int xDep=0,yDep=0,xArr=0,yArr=0,l=0,h=0;
    Graphics g;
    Ligne L;
    public ZoneDeDessin(){
        super();
        setBackground(Color.cyan);
        addMouseListener(new Souris());
        addMouseMotionListener(new SourisBouge());
        setLayout(null);
    }
   
    public void paint(Graphics g){
        super.paint(g);
    }
   
    public class Souris  implements MouseListener{
   
        public void mousePressed(MouseEvent pointeur) {
            xDep = pointeur.getX();
            yDep = pointeur.getY();
            xArr = xDep;
            yArr = yDep;
            L = new Ligne();
            add(L);
        }
   
        public void mouseClicked(MouseEvent pointeur) {}
        public void mouseReleased(MouseEvent arg0) {}
        public void mouseEntered(MouseEvent arg0) {}
        public void mouseExited(MouseEvent arg0) {}
    }
   
    public class SourisBouge implements MouseMotionListener{

        public void mouseDragged(MouseEvent pointeur) {
            // TODO Auto-generated method stub
           
            xArr = pointeur.getX();
            yArr = pointeur.getY();
            l = Math.abs(xArr-xDep);
            h = Math.abs(yArr-yDep);
           
            L.setBounds(Math.min(xDep,xArr),Math.min(yDep,yArr),l,h);
           
            repaint();
        }

        public void mouseMoved(MouseEvent arg0) {}
    }
   
    public static void main(String s[]) {
            JFrame f = new JFrame("Ligne");
            f.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {System.exit(0);}
            });
            ZoneDeDessin panel = new ZoneDeDessin();
            f.getContentPane().add(panel, BorderLayout.CENTER);
            f.pack();
            f.setSize(new Dimension(350,250));
            f.setVisible(true);
        }
}


Merci d'avance
lundi 30 janvier 2006 à 21:50:52 | Re : Au sujet d'un traçage de ligne avec Drawline

bloofi

Réponse acceptée !
C'est normal qu'elle n'est pas oblique puisque c'est une ligne :)

Methode bidouille :
avoir une liste de points :
a chak event drag, tu ajoutes un point dans la liste correspondant aux coords x,y de la souris, et tu paint une ligne entre chaque point.


Cette discussion est classée dans : ligne, public, void, pointeur, mouseevent


Répondre à ce message

Sujets en rapport avec ce message

Surcharge d'update pour éviter effacement du composant ne fonctionne pas [ par romanocry10 ] Je desire dessiner sur une JInternalFrame grâce à des évènements souris. Mais je ne veux pas qu'à chaque repaint() mon composant soit effacer. Je surc pb: Jpanel transparent... [ par tlehoucq ] Voila g un pti pb, J' ai un panel principal qui contient plusieurs autres panels. J'aimerais que ces panels "fils" restent transparents jusqu'àce que Probleme de JColorChooser [ par fabgog ] Bonjour je tente de realiser un editeur de texte en java et je bloque sur le choix de la couleur.j'utilise un JcolorChooser pour avoir une palette de clic droit sur JTable [ par jguillemette ] Comment peut-on récupérer la valeur d'une cellule d'une JTable sur laquelle on a fait un clic droit?JTable.addMouseListener( new MouseListener() {     Evènement en java [ par Deathmaker ] Tout d’abord, bonjour à vous tous ! Je vais vous expliquer mon problème en dessin, ça sera beaucoup plus compréhensible… Voilà ce que j’ai au dépa NullPointerException [ par castor62 ] Bonjour,J'ai une petite erreur NullPointerException en lancant mon application !J'ai créé un UI pour mon Jtabbedpane :public class MyCloseTabbedUI ext pop up menu [ par monpseudonom ] Salut.Je veux réaliser un menu contextuel en java.c'est à dire lorsque je clique sur le boutton droit de la souris,le menu contextuel s'affiche.Pour c probleme MouseListener [ par romainbisson ] Bonsoir,j'ai un probleme avec mon programmepublic class Bisson extends JFrame implements MouseListener{error : The type Bisson must implement the inhe Bloquage de coordonnée d'une image en java ? [ par fnxsawyer ] Bonjour à tous, Je suis en train de développer une application qui requiert de redessiner tous les composants les plus simples. Je suis en train de r éxécuter un une méthode d'une classe précise via un KeyListener [ par szambaux ] Bonjour j'ai besoin de piloter mon application via le clavier, pour cela j'ai créer une classe ClavierListener qui écoute le clavier, le but est que l


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,499 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales