Pour les devoirs, je veux dessiner des cercles au hasard autour de l'écran. Si l'un des cercles se chevauche, alors je veux remplir ces cercles. Je commence avec un code qui dessine des cercles sur l'écran partout où le pointeur de la souris est cliqué. Je suis vraiment confus sur la façon d'utiliser des valeurs aléatoires pour déterminer les cercles et aussi comment stocker ces valeurs dans un tableau ou un arraylist. Je pense que pour remplir les cercles, je vais juste utiliser une expression pour comparer la distance entre les centres des cercles. Merci beaucoup pour vos suggestions. Voici mon point de départ que je suis en train de comprendre comment modifier:dessiner des cercles aléatoires, stocker leurs coorindates dans un tableau
import java.util.ArrayList;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
public class DotsPanel extends JPanel
{
private final int SIZE = 6; // radius of each dot
private ArrayList<Point> pointList;
//-----------------------------------------------------------------
// Constructor: Sets up this panel to listen for mouse events.
//-----------------------------------------------------------------
public DotsPanel()
{
pointList = new ArrayList<Point>();
addMouseListener (new DotsListener());
setBackground (Color.black);
setPreferredSize (new Dimension(300, 200));
}
//-----------------------------------------------------------------
// Draws all of the dots stored in the list.
//-----------------------------------------------------------------
public void paintComponent (Graphics page)
{
super.paintComponent(page);
page.setColor (Color.green);
for (Point spot : pointList)
page.fillOval (spot.x-SIZE, spot.y-SIZE, SIZE*2, SIZE*2);
page.drawString ("Count: " + pointList.size(), 5, 15);
}
//*****************************************************************
// Represents the listener for mouse events.
//*****************************************************************
private class DotsListener implements MouseListener
{
//--------------------------------------------------------------
// Adds the current point to the list of points and redraws
// the panel whenever the mouse button is pressed.
//--------------------------------------------------------------
public void mousePressed (MouseEvent event)
{
pointList.add(event.getPoint());
repaint();
}
//--------------------------------------------------------------
// Provide empty definitions for unused event methods.
//--------------------------------------------------------------
public void mouseClicked (MouseEvent event) {}
public void mouseReleased (MouseEvent event) {}
public void mouseEntered (MouseEvent event) {}
public void mouseExited (MouseEvent event) {}
}
}