Newbie question dessiner java

anisotrope Messages postés 35 Date d'inscription dimanche 1 août 2004 Statut Membre Dernière intervention 14 mars 2006 - 18 sept. 2004 à 17:22
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 18 sept. 2004 à 20:01
Bonjour a tous.
Tout d'abord avant d'exposer mon probleme je voudrais dire que je viens juste de commencer le java donc un peu d'indulgence :=).
Voila je voudrais écrire dans un premier temps un projet pour dessiner a la souris pas dans un applet ca je sais faire mais dans une application. Je fais :

import java.awt.*;
import javax.swing.*;

import java.awt.event.MouseMotionListener;
import java.awt.event.MouseEvent;

public class Dessin1 implements MouseMotionListener {

JFrame cadre;

int XSourisPosAncien;
int YSourisPosAncien;
int XSourisPosNouveau;
int YSourisPosNouveau;

public static void main(String[] args) {
Dessin1 ihm = new Dessin1();
ihm.vasy();
}

public void vasy() {
cadre = new JFrame();
cadre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton bouton = new JButton("Cliquez");
MonPanneau2 panneau = new MonPanneau2();
cadre.getContentPane().add(BorderLayout.SOUTH, bouton);
cadre.getContentPane().add(BorderLayout.CENTER, panneau);
cadre.setSize(300, 300);
cadre.setVisible(true);
cadre.addMouseMotionListener(this);
}

public void mouseMoved(MouseEvent e) {
saySomething("Mouse moved", e);
XSourisPosAncien = e.getX();
YSourisPosAncien = e.getY();
}

public void mouseDragged(MouseEvent e) {
saySomething("Mouse dragged", e);
XSourisPosNouveau = e.getX();
YSourisPosNouveau = e.getY();

cadre.repaint();

}

void saySomething(String eventDescription, MouseEvent e) {
System.out.println(
" (" + e.getX() + "," + e.getY() + ")" + " detected");
}

class MonPanneau2 extends JPanel {

public void paintComponent(Graphics g) {
g.setColor(Color.BLACK);

g.drawLine(XSourisPosAncien,YSourisPosAncien,
XSourisPosNouveau,YSourisPosNouveau);

XSourisPosAncien = XSourisPosNouveau;
YSourisPosAncien = YSourisPosNouveau;

}
}

}

Mais le dessin s'efface au fur et a mesure pourquoi ??
Merci pour les réponses :)

1 réponse

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 11
18 sept. 2004 à 20:01
GodConan :clown)

oulala ;o) c pas du tou comme ca kil est preconiser ;o) de faire ta class ;o)

as tu regarder quelque exemple d appli sur le site?!!

menfin ;o) bon ton prob (il me semble) vien de ton repaint() comme tu donne l ordre a ta JFrame de ce redessienr ;o) ben elle le fait ;o) pi c tou ;o)
et que fait un Component qd il ce dessine ;o) ben il commence par dessiner son background ;o) et c la kil efface ton dessin
il te faut dc memo toute les position et les restituer a chac repaint.... ;o) ou au plus simple utiliser un offscreen(exemple sur site) ki contiendra dc ton dessin au fure est a mesure ...

++
0
Rejoignez-nous