From 1b971ee4f16fd58fc10f284c55be438576cd72e4 Mon Sep 17 00:00:00 2001 From: Vincent Date: Tue, 22 Sep 2026 15:39:05 +0200 Subject: [PATCH] added color choice + size choice --- .../src/main/java/views/MagicSlate.java | 91 +++++++++---------- 1 file changed, 41 insertions(+), 50 deletions(-) diff --git a/ProjetJava/src/main/java/views/MagicSlate.java b/ProjetJava/src/main/java/views/MagicSlate.java index b49a937..9d81a2e 100644 --- a/ProjetJava/src/main/java/views/MagicSlate.java +++ b/ProjetJava/src/main/java/views/MagicSlate.java @@ -1,19 +1,21 @@ package views; +import java.awt.BasicStroke; import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; +import java.awt.Graphics2D; import java.awt.event.ActionEvent; -import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import javax.swing.JButton; import javax.swing.JColorChooser; -import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JSlider; +import javax.swing.event.ChangeEvent; /** * @@ -26,16 +28,17 @@ public class MagicSlate extends JPanel{ private final JPanel buttons = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 5)); private JPanel dessin = new JPanel(); private Color currentColor = Color.BLACK; + + private int taille; public MagicSlate() { - JButton red = new JButton("Rouge"); - JButton yellow = new JButton("Jaune"); - JButton blue = new JButton("Bleu"); - JButton black = new JButton("Noir"); - JButton white = new JButton("Blanc"); JButton reset = new JButton("Effacer"); - + JButton choice = new JButton("Couleurs"); + JSlider test = new JSlider(); + JButton small = new JButton("Petit"); + JButton medium = new JButton("Moyen"); + JButton large = new JButton("Grand"); //Sur dessin pour éviter le décalage. //on récupére la position de la souris lorsqu'elle est clické @@ -54,8 +57,11 @@ public class MagicSlate extends JPanel{ public void mouseDragged(MouseEvent e) { Graphics g = dessin.getGraphics(); if (g != null) { - g.setColor(currentColor); - g.drawLine(x, y, e.getX(), e.getY()); + Graphics2D g2 = (Graphics2D) g;//Conversion pour avoir accès au changement de taille du pinceau + g2.setColor(currentColor); + g2.setStroke(new BasicStroke(taille, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); + g2.drawLine(x, y, e.getX(), e.getY()); + //g.dispose(); } x = e.getX(); @@ -71,65 +77,50 @@ public class MagicSlate extends JPanel{ this.add(dessin, BorderLayout.CENTER); this.add(buttons, BorderLayout.NORTH); - buttons.add(red); - buttons.add(blue); - buttons.add(yellow); - buttons.add(black); - buttons.add(white); + buttons.add(reset); + buttons.add(choice); + buttons.add(test); + + buttons.add(small); + buttons.add(medium); + buttons.add(large); + //Les override qui permettent de changer la couleur du pinceau + //devenue des classe lambda - red.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ - currentColor = Color.RED; - } + small.addActionListener((ActionEvent e) -> { + taille = 1; }); - yellow.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ - currentColor = Color.YELLOW; - } + medium.addActionListener((ActionEvent e) -> { + taille = 5; }); - blue.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ - currentColor = Color.BLUE; - } + large.addActionListener((ActionEvent e) -> { + taille = 10; }); - black.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ - currentColor = Color.BLACK; - } + + + test.addChangeListener((ChangeEvent e) -> { + taille = test.getValue(); }); + - white.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ - currentColor = Color.WHITE; - } + choice.addActionListener((ActionEvent e) -> { + currentColor = JColorChooser.showDialog(null, "Choose a color", Color.RED); }); - reset.addActionListener(new ActionListener(){ - @Override - public void actionPerformed(ActionEvent e){ + reset.addActionListener((ActionEvent e) -> { repaint(); //Permet de reset le tableau - } }); -// -// this.setTitle("Dessinons"); + + this.setSize(500, 500); -// this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); -// this.setLocationRelativeTo(null); -// this.setContentPane(container); this.setVisible(true); -// this.setResizable(false); -- GitLab