Java 我如何迭代一组颜色,以便每次鼠标单击时颜色都会改变?

Java 我如何迭代一组颜色,以便每次鼠标单击时颜色都会改变?,java,arrays,eclipse,for-loop,Java,Arrays,Eclipse,For Loop,所以我想在鼠标单击时遍历一个颜色数组,当它到达数组的末尾时,返回数组中的0空间 private Color _color = Color.BLACK; private Color[] _arrayOfColors = new Color[]{Color.GREEN, Color.RED, Color.BLUE, Color.BLACK}; @Override public void paint(Graphics g) { g.setColor(_color); g.draw

所以我想在鼠标单击时遍历一个颜色数组,当它到达数组的末尾时,返回数组中的0空间

 private Color _color = Color.BLACK;
 private Color[] _arrayOfColors = new Color[]{Color.GREEN, Color.RED, Color.BLUE, Color.BLACK};

@Override
public void paint(Graphics g)
{
    g.setColor(_color);
    g.drawRect(_x, _y, _size, _size);
}

@Override
public void mousePressed(MouseEvent mev)
{
    for(int i = 0; i<_arrayOfColors.length; i++)
    {
        _color = _arrayOfColors[i];
    }
}
private Color\u Color=Color.BLACK;
私有颜色[]_arrayOfColors=新颜色[]{Color.GREEN,Color.RED,Color.BLUE,Color.BLACK};
@凌驾
公共空间涂料(图g)
{
g、 setColor(_color);
g、 drawRect(x,y,size,size);
}
@凌驾
公共空间鼠标按下(MouseEvent mev)
{
对于(int i=0;i
Color[]colors=new Color[10];//您的颜色数组
颜色currentColor;//正在显示的当前颜色
int index=0;//重要提示:防止循环每次从0开始
公共无效鼠标按下(MouseEvent e){

currentColor=colors[index我最近在一个画布项目中使用了它。“我”将把下面的颜色数组从0无限循环到它的长度。希望这能对您有所帮助

var i = 0;
var colours = ['red', 'green', 'blue'];

function mouseClick(){

    var _currColour =  colours[i % colours.length];

    i++;

    return _currColour;

}

声明一个属性以跟踪当前颜色的索引:

private int index = 0;
然后,在您的
mousePressed
事件处理程序中,增加此索引,考虑可能的
ArrayIndexOutOfBoundsException

@Override
public void mousePressed(MouseEvent mev) {
    _color = _arrayOfColors[index];
    index = (index + 1) % _arrayOfColors.length;
}

就我个人而言,我宁愿使用
枚举
,这是循环遍历枚举值的适当方法,以给出列表中的下一种颜色。在遍历每种颜色后,需要重新绘制。如果确实希望看到它发生,还需要添加延迟…重新绘制()在哪里方法被定位?在颜色改变后的循环中?我的意思是重绘方法位于哪个类?JPanel?
@Override
public void mousePressed(MouseEvent mev) {
    _color = _arrayOfColors[index];
    index = (index + 1) % _arrayOfColors.length;
}