Java 绘制随机圆,将其坐标日期存储在数组中

Java 绘制随机圆,将其坐标日期存储在数组中,java,random,geometry,drawing,Java,Random,Geometry,Drawing,对于家庭作业,我想在屏幕周围随机画圆圈。如果任何一个圆重叠,那么我想填充这些圆。我从一些代码开始,这些代码在鼠标指针被点击的地方在屏幕上画圆圈。我真的很困惑如何使用随机值来确定圆,以及如何将这些值存储在数组或arraylist中。我认为,为了填充圆,我将使用一个语句来比较圆的中心点之间的距离。非常感谢您的建议。以下是我试图找出如何修改的起点: import java.util.ArrayList; import javax.swing.JPanel; import java.awt.*; imp

对于家庭作业,我想在屏幕周围随机画圆圈。如果任何一个圆重叠,那么我想填充这些圆。我从一些代码开始,这些代码在鼠标指针被点击的地方在屏幕上画圆圈。我真的很困惑如何使用随机值来确定圆,以及如何将这些值存储在数组或arraylist中。我认为,为了填充圆,我将使用一个语句来比较圆的中心点之间的距离。非常感谢您的建议。以下是我试图找出如何修改的起点:

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) {}
   }
}
import java.util.ArrayList;
导入javax.swing.JPanel;
导入java.awt.*;
导入java.awt.event.*;
公共类DotsPanel扩展了JPanel
{
私有最终整数大小=6;//每个点的半径
私有ArrayList点列表;
//-----------------------------------------------------------------
//构造函数:设置此面板以侦听鼠标事件。
//-----------------------------------------------------------------
公共DotsPanel()
{
pointList=新的ArrayList();
addMouseListener(新的DotsListener());
挫折背景(颜色:黑色);
setPreferredSize(新尺寸(300200));
}
//-----------------------------------------------------------------
//绘制列表中存储的所有点。
//-----------------------------------------------------------------
公共组件(图形页)
{
super.paintComponent(第页);
page.setColor(Color.green);
对于(点:点列表)
page.fillOval(spot.x尺寸、spot.y尺寸、尺寸*2、尺寸*2);
page.drawString(“计数:”+pointList.size(),5,15);
}
//*****************************************************************
//表示鼠标事件的侦听器。
//*****************************************************************
私有类DotsListener实现MouseSListener
{
//--------------------------------------------------------------
//将当前点添加到点列表并重新绘制
//只要按下鼠标按钮,面板就会显示。
//--------------------------------------------------------------
公共无效鼠标按下(鼠标事件)
{
添加(event.getPoint());
重新油漆();
}
//--------------------------------------------------------------
//为未使用的事件方法提供空定义。
//--------------------------------------------------------------
public void mouseClicked(MouseEvent事件){}
公共无效MouseEvent事件{}
public void mouseenterned(MouseEvent事件){}
public void mouseExited(MouseEvent事件){}
}
}
您想使用

Math.random() 其中200是最大数字,这将是您屏幕的大小

Random random = new Random();
int x = random.nextInt(200);