import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import java.awt.Graphics; import java.awt.Color; import java.awt.Dimension; import java.awt.BorderLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.util.ArrayList; class DisqueGraphique { private int rayon, x, y; Color couleur = Color.MAGENTA; public DisqueGraphique(int rayon, int x, int y) { this.rayon = rayon; this.x = x; this.y = y; } void dessiner(Graphics g) { g.setColor(couleur); g.fillOval(x - rayon, y - rayon, 2 * rayon, 2 * rayon); } } class ArdoiseScroll extends JPanel { ArrayList liste = new ArrayList(); ArdoiseScroll() { setPreferredSize(new Dimension(400, 600)); addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent evt) { liste.add(new DisqueGraphique(10, evt.getX(), evt.getY())); repaint(); } }); } public void paintComponent(Graphics g) { super.paintComponent(g); for (DisqueGraphique disque : liste) disque.dessiner(g); } } public class Scroll extends JFrame { public Scroll() { JScrollPane ascenseurs = new JScrollPane(new ArdoiseScroll()); ascenseurs.setPreferredSize(new Dimension(200, 200)); add(ascenseurs, BorderLayout.CENTER); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocation(100, 100); pack(); setVisible(true); } } class EssaiScroll { public static void main(String[] arg) { new Scroll(); } }