Accueil > Forum > > > > Au sujet d'un traçage de ligne avec Drawline
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
exception in thread main [ par youzbachi3amal ]
assalemou 3alaykom ce genre d'erreur apparait à chahque fois que j'utilise japplet,en effet lecode est compiler mais erreur à l' execution pleeeeeeeee
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|