Java 如果无法使每个点具有不同的颜色,则可以';t找出如何使存储在arraylist中的每个点的颜色不同

Java 如果无法使每个点具有不同的颜色,则可以';t找出如何使存储在arraylist中的每个点的颜色不同,java,swing,jpanel,Java,Swing,Jpanel,在使用dr.java使每个点成为不同的随机颜色、保持相同的颜色以及不改变每个点的相同颜色方面存在困难。它会反复地将新旧圆点换成相同的颜色,并在制作新圆点时保留一个圆点作为旧颜色 import java.util.ArrayList; 导入javax.swing.JPanel; 导入java.awt.*; 导入java.awt.event.*; 导入java.util.Random; 公共类DotsPanel扩展了JPanel { 私有最终整数大小=6; 私有ArrayList点列表; 公共Dot

在使用dr.java使每个点成为不同的随机颜色、保持相同的颜色以及不改变每个点的相同颜色方面存在困难。它会反复地将新旧圆点换成相同的颜色,并在制作新圆点时保留一个圆点作为旧颜色

import java.util.ArrayList;
导入javax.swing.JPanel;
导入java.awt.*;
导入java.awt.event.*;
导入java.util.Random;
公共类DotsPanel扩展了JPanel
{
私有最终整数大小=6;
私有ArrayList点列表;
公共DotsPanel()
{
pointList=新的ArrayList();
addMouseMotionListener(新的DotsListener());
addMouseListener(新的DotsListener());
挫折背景(颜色:黑色);
setPreferredSize(新尺寸(500500));
}
不能让它只画一个当我把一个新的点,它改变了旧的新的颜色也

公共组件(图形页)
{ 
super.paintComponent(第页);
Random rand=新的Random();
int r=兰特·奈克斯汀(255);
int g=兰特·耐克斯汀(255);
int b=兰特·耐克斯汀(255);
页面设置颜色(新颜色(r、g、b));
对于(点:点列表)
{
第页圆角(点x尺寸、点y尺寸、尺寸*2、尺寸*2);
}
}
私有类DotsListener实现MouseMotionListener,MouseSListener
{
公共无效鼠标标记(鼠标事件)
{
添加(event.getPoint());
重新油漆();
////////
///////无法将页面颜色放在此处,无法识别。
}
公共无效鼠标按下(鼠标事件)
{
添加(event.getPoint());
重新油漆();
}
public void mouseClicked(MouseEvent事件){}
公共无效MouseEvent事件{}
public void mouseenterned(MouseEvent事件){}
public void mouseExited(MouseEvent事件){}
public void mouseMoved(MouseEvent事件){}
}
}

解决此问题的最简单方法是创建一个自定义类(例如
ColoredDot
),该类封装了
点和
颜色。将这些存储在
ArrayList
中,并在迭代列表以绘制点时,访问该
ColoredDot
的颜色并更改
图形
对象的颜色。顺便问一下,你有什么问题吗?一般提示:为了更快地获得更好的帮助,请发布一个or。不要在绘画方法中生成随机颜色。您无法控制何时调用绘制方法,因此不希望颜色随机更改。有关如何绘制不同颜色的矩形的工作代码,请参见。