1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.awt.image.*;
public class Dessin2 extends JFrame implements ActionListener {
JMenuBar menuBar;
JMenuItem couleur, effacer, quitter;
Color defColor = Color.blue;
static Color selectedColor;
Graphics g;
Dessin2(){
super("Dessin2");
JPanel p = new JPanel();
p.setLayout(new BorderLayout());
Contenu contenu = new Contenu();
p.add(contenu);
getContentPane().add(p);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 600);
Dimension d1 = getToolkit().getScreenSize();
Dimension d2 = this.getSize();
setLocation(d1.width/2 - d2.width/2, d1.height/2 - d2.height/2);
setVisible(true);
//barre de menu
menuBar = new JMenuBar();
this.setJMenuBar(menuBar);
//menu Actions ( contener des autres menu et menuItems
JMenu menu = new JMenu("Actions");
//Menu 'Changer couleur'
couleur = new JMenuItem("Changer couleur");
couleur.addActionListener(this);
menu.add(couleur);
//Boutton Effacer
effacer = new JMenuItem("Effacer");
effacer.addActionListener(this);
menu.add(effacer);
//Boutton Quitter
quitter = new JMenuItem("Quitter");
quitter.addActionListener(this);
menu.add(quitter);
menuBar.add(menu);
}
//methode pour choisir la couleur
public void chooseColor(){
selectedColor = JColorChooser.showDialog(this, "Choose Background Color", defColor);
}
//methode pour effacer le dessin
public void efface(){
repaint();
}
//Actions en fonctions des evenements
public void actionPerformed(ActionEvent e){
if(e.getSource().equals(this.couleur)) chooseColor();
if(e.getSource().equals(this.effacer)) this.efface();
if(e.getSource().equals(this.quitter)) System.exit(0);
}
//---Methode Main---
public static void main(String[] args){
Dessin2 dessin2 = new Dessin2();
}
}
//|| Class Contenu ||
class Contenu extends JPanel implements MouseMotionListener {
int xPrec, yPrec;
// Buffering
BufferedImage img = new BufferedImage(400, 300, BufferedImage.TYPE_INT_RGB);
Graphics imgGraph = img.getGraphics();
// || Constructeur ||
public Contenu(){
addMouseMotionListener(this);
setBackground(Color.white);
}
//Listener d event de la souris
public void mouseDragged(MouseEvent e){
Graphics g = getGraphics();
g.setColor(Dessin2.selectedColor);
g.drawLine(xPrec, yPrec, e.getX(), e.getY());
mouseMoved(e);
}
//Listener de la position de la souris
public void mouseMoved(MouseEvent e) {
xPrec = e.getX();
yPrec = e.getY();
}
//PaintComponent
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, null);
}
} |
Partager