Dessiner sur un JPanel... [Résolu]

cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention - 20 sept. 2004 à 15:44 - Dernière réponse : cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention
- 22 sept. 2004 à 00:27
Salut,
j'ai un petit problème, je suis en train de faire un petit prog genre paint et lorsque je dessine sur le JPanel et que je passe une autre fenêtre devant tout ce qui était dessiné disparait. Y aurait-il une méthode qui permetterait de remédier à se problème?
Afficher la suite 

8 réponses

Répondre au sujet
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 20 sept. 2004 à 18:36
0
Utile
GodConan :clown)

memo tout les vecteur de dessin et a l aide d un repaint redessiner tou ;o)
Commenter la réponse de cs_GodConan
cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention - 21 sept. 2004 à 00:59
0
Utile
Et il n'y aurait pas plus simple?
Commenter la réponse de cs_Mickey45
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 21 sept. 2004 à 02:34
0
Utile
GodConan :clown)
ben montre ton code et comme chui de bonne humeur ;o) je te le corrige ;o)
Commenter la réponse de cs_GodConan
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 21 sept. 2004 à 02:35
0
Utile
GodConan :clown)
Mais bon le plus simple est qd meme de matter les sample du cite surtou mes sources ;o) je couvre qd meme pas mal de cas...

GL
Commenter la réponse de cs_GodConan
cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention - 21 sept. 2004 à 12:22
0
Utile
Ben voilà le code si tu es motivé.
Ca c'est la class PaintX.
Si jamais tu es motivé pour corriger mon code, donne moi juste la méthode pour faire que tout ne parte pas dans le JPanel mais pas le reste parce que ça me sert d'exercice.
merci d'avance.
-----------------------------------------

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JPanel.*;
import java.awt.Component.*;
import javax.swing.*;
import java.awt.image.*;
import java.awt.geom.*;

public class PaintX extends JFrame{
//contenu de la fenêtre
JPanel container;

JLabel statusbar = new JLabel();

JPanel fond = new JPanel();


int brushSize =10;
int x;
int y;
int a;
int b;
int c;
int d;
Color couleur;
String choixForme;
String choixPencil;
String choixLine;
String choixCircle;
String choixRectangle;

JMenuBar monMenuBar = new JMenuBar();
JMenu monMenu = new JMenu();
JMenu edition = new JMenu();
JMenu form = new JMenu();
JMenu size = new JMenu();
JMenu color = new JMenu();
JMenu about = new JMenu();

JMenuItem exit = new JMenuItem();
JMenuItem size10 = new JMenuItem();
JMenuItem size20 = new JMenuItem();
JMenuItem size30 = new JMenuItem();
JMenuItem save = new JMenuItem();
JMenuItem nouveau = new JMenuItem();
JMenuItem open = new JMenuItem();
JMenuItem print = new JMenuItem();
JMenuItem undo = new JMenuItem();
JMenuItem aboutp = new JMenuItem();
JMenuItem pencil = new JMenuItem();
JMenuItem line = new JMenuItem();
JMenuItem circle = new JMenuItem();
JMenuItem rectangle = new JMenuItem();

JMenuItem blue = new JMenuItem();
JMenuItem red = new JMenuItem();
JMenuItem green = new JMenuItem();
JMenuItem black = new JMenuItem();
JMenuItem cyan = new JMenuItem();
JMenuItem gray = new JMenuItem();
JMenuItem magenta = new JMenuItem();
JMenuItem orange = new JMenuItem();
JMenuItem pink = new JMenuItem();
JMenuItem yellow = new JMenuItem();

BufferedImage image = new BufferedImage(500, 500, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = image.createGraphics();

BorderLayout monLayout = new BorderLayout();





//constructeur
public PaintX(){
//permet d'arrêter le processus à la fermeture de la fenêtre.
container =(JPanel) this.getContentPane();

this.addWindowListener( new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});


fond.setBackground(Color.white);
fond.setSize(500,500);


monMenu.setText("Menu");
edition.setText("Edition");
form.setText("Form");
size.setText("Size");
color.setText("Color");



about.setText("About");

exit.setText("exit");
nouveau.setText("new");
open.setText("open");
print.setText("print");
undo.setText("undo");
aboutp.setText("about PaintX");
save.setText("save");
pencil.setText("pencil");
line.setText("line");
circle.setText("circle");
rectangle.setText("rectangle");

size10.setText("size 10");
size20.setText("size 20");
size30.setText("size 30");

blue.setText("blue");
red.setText("red");
green.setText("green");
black.setText("black");
cyan.setText("cyan");
gray.setText("gray");
magenta.setText("magenta");
orange.setText("orange");
pink.setText("pink");
yellow.setText("yellow");



fond.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseMoved(MouseEvent e){
x=e.getX();
y=e.getY();
statusbar.setText("Status: "+x+","+y);
}});
/* fond.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Graphics g = fond.getGraphics();
if(e.getModifiers() == e.BUTTON1_MASK){
g.setColor(couleur);
g.fillOval(x-brushSize/2,y-brushSize/2,brushSize,brushSize);

}}});
*/
//détermine quelle forme est utilisée
pencil.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
choixForme = choixPencil;
}}});

line.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
choixForme = choixLine;
//ligne de contrôle
System.out.println("ligne");
}}});

circle.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
choixForme = choixCircle;
}}});

rectangle.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
choixForme = choixRectangle;
}}});

//utilisation de la forme
fond.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
a=e.getX();
b=e.getY();
//lignes de contrôle
System.out.println(a);
System.out.println(b);
}});
fond.addMouseListener(new MouseAdapter(){
public void mouseReleased(MouseEvent e){
c=e.getX();
d=e.getY();


if(choixForme == choixLine){
//lignes de contrôle
System.out.println(c);
System.out.println(d);
//essai
Graphics g = getGraphics ();
g.setColor(couleur);
g.drawLine(a,b,c,d);

}
}});


/*pencil.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Graphics g = fond.getGraphics();
//le nom de la méthode qui permet de faire les lignes
}});

circle.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Graphics g = fond.getGraphics();
//le nom de la méthode qui permet de faire des cercles
}});

rectangle.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Graphics g = fond.getGraphics();
//le nom de la méthode qui permet de faire des rectangles
}});

*/

fond.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
Graphics g = fond.getGraphics();
if(e.getModifiers() == e.BUTTON3_MASK){
g.setColor(Color.white);
g.fillOval(x-brushSize/2,y-brushSize/2,brushSize,brushSize);
}
}});

exit.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
System.exit(0);
}}});

nouveau.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
fond.repaint();}}});

aboutp.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
About about = new About();}}});



size10.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
brushSize = 10;}
}});
size20.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
brushSize = 20;}
}});
size30.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
brushSize = 30;}
}});


black.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.black;
color.setBackground(Color.white);
}
}});
blue.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.blue;
color.setBackground(Color.blue);}
}});

red.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.red;
color.setBackground(Color.red);}
}});

green.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.green;
color.setBackground(Color.green);}
}});

cyan.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.cyan;
color.setBackground(Color.cyan);}
}});

gray.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.gray;
color.setBackground(Color.gray);}
}});

magenta.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.magenta;
color.setBackground(Color.magenta);}
}});

orange.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.orange;
color.setBackground(Color.orange);}
}});

pink.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.pink;
color.setBackground(Color.pink);}
}});

yellow.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e){
if(e.getModifiers() == e.BUTTON1_MASK){
couleur = Color.yellow;
color.setBackground(Color.yellow);}
}});




container.setLayout(monLayout);

container.add(statusbar, monLayout.SOUTH);

container.add(fond, monLayout.CENTER);



this.setJMenuBar(monMenuBar);
monMenuBar.add(monMenu);
monMenuBar.add(edition);
monMenuBar.add(form);
monMenuBar.add(size);
monMenuBar.add(color);
monMenuBar.add(about);


monMenu.add(nouveau);
monMenu.add(open);
monMenu.add(save);
monMenu.add(print);
monMenu.add(exit);

edition.add(undo);

form.add(pencil);
form.add(line);
form.add(circle);
form.add(rectangle);

size.add(size10);
size.add(size20);
size.add(size30);

color.add(black);
color.add(blue);
color.add(red);
color.add(green);
color.add(cyan);
color.add(gray);
color.add(magenta);
color.add(orange);
color.add(pink);
color.add(yellow);

about.add(aboutp);


setSize(600,600);
setTitle("PaintX");
setVisible(true);

}



public static void main(String[] args){
PaintX paintX = new PaintX();
}
}
Commenter la réponse de cs_Mickey45
cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention - 21 sept. 2004 à 12:24
0
Utile
Et la class About.
-------------------------

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.JPanel.*;
import java.awt.Component.*;
import javax.swing.*;

public class About extends JFrame{
JPanel container;
JButton button = new JButton();
JLabel label = new JLabel();

BorderLayout monLayout = new BorderLayout();

public About(){
container =(JPanel) this.getContentPane();
container.setLayout(monLayout);
//contenu de la fenêtre
label.setText(" PaintX, 2004, Michaël Gerber");

container.add(label, monLayout.CENTER);

setSize(300,200);
setTitle("About PaintX");

setVisible(true);
}


}
Commenter la réponse de cs_Mickey45
cs_Mickey45 31 Messages postés mardi 27 mai 2003Date d'inscription 22 septembre 2004 Dernière intervention - 22 sept. 2004 à 00:27
0
Utile
Merci beaucoup GodConan ça fonctionne super bien.
:big)
Commenter la réponse de cs_Mickey45
cs_GodConan 2116 Messages postés samedi 8 novembre 2003Date d'inscriptionContributeurStatut 6 octobre 2012 Dernière intervention - 21 sept. 2004 à 20:08
-2
Utile
GodConan :clown)

tien voila une methode ... c la methode don je t parler plus haut
ce n est pas la meilleur mais pour commencer c un debut ;o)
moi je te conseil d utiliser les offscreen (sample sur le site)

g repri exactement ta class en ajoutant 2 class local et en modifiant 2 3 lignes
de plus utilise plutot une class unik pour tout t action listner ca fait plus organiser ;o) et n oubli pas d acceder de facon static aux constantes (je te l ai corriger)

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.Serializable;
import java.util.Iterator;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;

public class PaintX extends JFrame
{

//contenu de la fenêtre
JPanel container;

JLabel statusbar = new JLabel();

PnlLineDrawer fond = new PnlLineDrawer();

int brushSize = 10;
int x;
int y;
int a;
int b;
int c;
int d;
Color couleur;
String choixForme;
String choixPencil;
String choixLine;
String choixCircle;
String choixRectangle;

JMenuBar monMenuBar = new JMenuBar();
JMenu monMenu = new JMenu();
JMenu edition = new JMenu();
JMenu form = new JMenu();
JMenu size = new JMenu();
JMenu color = new JMenu();
JMenu about = new JMenu();

JMenuItem exit = new JMenuItem();
JMenuItem size10 = new JMenuItem();
JMenuItem size20 = new JMenuItem();
JMenuItem size30 = new JMenuItem();
JMenuItem save = new JMenuItem();
JMenuItem nouveau = new JMenuItem();
JMenuItem open = new JMenuItem();
JMenuItem print = new JMenuItem();
JMenuItem undo = new JMenuItem();
JMenuItem aboutp = new JMenuItem();
JMenuItem pencil = new JMenuItem();
JMenuItem line = new JMenuItem();
JMenuItem circle = new JMenuItem();
JMenuItem rectangle = new JMenuItem();

JMenuItem blue = new JMenuItem();
JMenuItem red = new JMenuItem();
JMenuItem green = new JMenuItem();
JMenuItem black = new JMenuItem();
JMenuItem cyan = new JMenuItem();
JMenuItem gray = new JMenuItem();
JMenuItem magenta = new JMenuItem();
JMenuItem orange = new JMenuItem();
JMenuItem pink = new JMenuItem();
JMenuItem yellow = new JMenuItem();

BufferedImage image = new BufferedImage(500, 500,
BufferedImage.TYPE_INT_ARGB);
Graphics2D g2D = image.createGraphics();

BorderLayout monLayout = new BorderLayout();

//constructeur
public PaintX()
{
//permet d'arrêter le processus à la fermeture de la fenêtre.
container = (JPanel) this.getContentPane();

this.addWindowListener(new WindowAdapter()
{

public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});

fond.setBackground(Color.white);
fond.setSize(500, 500);

monMenu.setText("Menu");
edition.setText("Edition");
form.setText("Form");
size.setText("Size");
color.setText("Color");

about.setText("About");

exit.setText("exit");
nouveau.setText("new");
open.setText("open");
print.setText("print");
undo.setText("undo");
aboutp.setText("about PaintX");
save.setText("save");
pencil.setText("pencil");
line.setText("line");
circle.setText("circle");
rectangle.setText("rectangle");

size10.setText("size 10");
size20.setText("size 20");
size30.setText("size 30");

blue.setText("blue");
red.setText("red");
green.setText("green");
black.setText("black");
cyan.setText("cyan");
gray.setText("gray");
magenta.setText("magenta");
orange.setText("orange");
pink.setText("pink");
yellow.setText("yellow");

fond.addMouseMotionListener(new MouseMotionAdapter()
{

public void mouseMoved(MouseEvent e)
{
x = e.getX();
y = e.getY();
statusbar.setText("Status: " + x + "," + y);
}
});
/*
* fond.addMouseListener(new MouseAdapter(){ public void
* mousePressed(MouseEvent e){ Graphics g = fond.getGraphics();
* if(e.getModifiers() == e.BUTTON1_MASK){ g.setColor(couleur);
* g.fillOval(x-brushSize/2,y-brushSize/2,brushSize,brushSize);
*
* }}});
*/
//détermine quelle forme est utilisée
pencil.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
choixForme = choixPencil;
}
}
});

line.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
choixForme = choixLine;
//ligne de contrôle
System.out.println("ligne");
}
}
});

circle.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
choixForme = choixCircle;
}
}
});

rectangle.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
choixForme = choixRectangle;
}
}
});

//utilisation de la forme
fond.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
a = e.getX();
b = e.getY();
//lignes de contrôle
System.out.println(a);
System.out.println(b);
}
});
fond.addMouseListener(new MouseAdapter()
{

public void mouseReleased(MouseEvent e)
{
c = e.getX();
d = e.getY();

if (choixForme == choixLine)
{
//lignes de contrôle
System.out.println(c);
System.out.println(d);
//essai
// Graphics g = getGraphics();
// g.setColor(couleur);
// g.drawLine(a, b, c, d);
fond.addLine( new Line( couleur, new Point( a, b ), new Point( c, d ) ) );
}
}
});

/*
* pencil.addMouseListener(new MouseAdapter(){ public void
* mousePressed(MouseEvent e){ Graphics g = fond.getGraphics(); //le nom
* de la méthode qui permet de faire les lignes }});
*
* circle.addMouseListener(new MouseAdapter(){ public void
* mousePressed(MouseEvent e){ Graphics g = fond.getGraphics(); //le nom
* de la méthode qui permet de faire des cercles }});
*
* rectangle.addMouseListener(new MouseAdapter(){ public void
* mousePressed(MouseEvent e){ Graphics g = fond.getGraphics(); //le nom
* de la méthode qui permet de faire des rectangles }});
*
*/

fond.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
// Graphics g = fond.getGraphics();
// if (e.getModifiers() == MouseEvent.BUTTON3_MASK)
// {
// g.setColor(Color.white);
// g.fillOval(x - brushSize / 2, y - brushSize / 2, brushSize,
// brushSize);
// }
}
});

exit.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
System.exit(0);
}
}
});

nouveau.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
// fond.repaint();
}
}
});

aboutp.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
// About about = new About();
}
}
});

size10.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
brushSize = 10;
}
}
});
size20.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
brushSize = 20;
}
}
});
size30.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
brushSize = 30;
}
}
});

black.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.black;
color.setBackground(Color.white);
}
}
});
blue.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.blue;
color.setBackground(Color.blue);
}
}
});

red.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.red;
color.setBackground(Color.red);
}
}
});

green.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.green;
color.setBackground(Color.green);
}
}
});

cyan.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.cyan;
color.setBackground(Color.cyan);
}
}
});

gray.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.gray;
color.setBackground(Color.gray);
}
}
});

magenta.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.magenta;
color.setBackground(Color.magenta);
}
}
});

orange.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.orange;
color.setBackground(Color.orange);
}
}
});

pink.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.pink;
color.setBackground(Color.pink);
}
}
});

yellow.addMouseListener(new MouseAdapter()
{

public void mousePressed(MouseEvent e)
{
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
{
couleur = Color.yellow;
color.setBackground(Color.yellow);
}
}
});

container.setLayout(monLayout);

container.add(statusbar, BorderLayout.SOUTH);

container.add(fond, BorderLayout.CENTER);

this.setJMenuBar(monMenuBar);
monMenuBar.add(monMenu);
monMenuBar.add(edition);
monMenuBar.add(form);
monMenuBar.add(size);
monMenuBar.add(color);
monMenuBar.add(about);

monMenu.add(nouveau);
monMenu.add(open);
monMenu.add(save);
monMenu.add(print);
monMenu.add(exit);

edition.add(undo);

form.add(pencil);
form.add(line);
form.add(circle);
form.add(rectangle);

size.add(size10);
size.add(size20);
size.add(size30);

color.add(black);
color.add(blue);
color.add(red);
color.add(green);
color.add(cyan);
color.add(gray);
color.add(magenta);
color.add(orange);
color.add(pink);
color.add(yellow);

about.add(aboutp);

setSize(600, 600);
setTitle("PaintX");
setVisible(true);

}
class Line implements Serializable
{
public Color col = null;
public Point dep = null;
public Point fin = null;
public Line( Color c, Point start, Point end )
{
this.col = c;
this.dep = start;
this.fin = end;
}
}

class PnlLineDrawer extends JPanel
{
public PnlLineDrawer()
{
super();
}
Vector lines = new Vector();
public void paint( Graphics g )
{
super.paint( g );
drawLines( g );
}

public void addLine( Line l )
{
lines.add( l );
repaint();
}
private void drawLines(Graphics g)
{
for (Iterator iter = lines.iterator(); iter.hasNext();)
{
Line l = (Line) iter.next();
g.setColor( l.col );
g.drawLine( l.dep.x, l.dep.y, l.fin.x, l.fin.y );
}
}
}


public static void main(String[] args)
{
PaintX paintX = new PaintX();
}
}
Commenter la réponse de cs_GodConan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.