java - 如何分别访问对象变量的所有不同实例?

标签 java swing object

我在初始化方法中生成 100 个椭圆作为粒子,然后我想将它们移动一定的量(比如说 x),进行 n 次迭代。我编写了以下代码片段来执行此操作。

private void drawNParticles(Graphics g)
    {   
        ArrayList<Integer> list;        
        list = new ArrayList<Integer>(Collections.nCopies(n, 0));
        for(int i=0;i<list.size();i++)
        {
           generateParticle(g);
        }
    }

private void generateParticle(Graphics g)
{
    int radius = 4;
    ArrayList<Integer> list= new ArrayList<Integer>();
    list=positionParticles(particle_x,particle_y);
    g.setColor(Color.RED);
    g.fillOval(list.get(0),list.get(1), radius, radius);
}

private ArrayList<Integer> positionParticles(int x, int y)
{
    int radius = 4;
    ArrayList<Integer> list= new ArrayList<Integer>();
    if(this.particle_counter==0)
    {
        x=randomInteger(2,678); // bounds of x between which the particles should be generated
        y=randomInteger(2,448); // bounds of y between which the particles should be generated
        x=x-(radius/2);
        y=y-(radius/2);
        if((x<251&&x>149)&&(y<266&&y>224))
        {
            x=0;
            y=0;
            positionParticles(x,y);
        }
        if((x<541&&x>499)&&(y<401&&y>299))
        {
            x=0;
            y=0;
            positionParticles(x,y);
        }
        this.particle_counter++;
    }
    else
    {
        setXPosition_particle(x);
        setYPosition_particle(y);
    }
    list.add(x);
    list.add(y);
    return list;
}

public void setXPosition_particle(int x)
    {
        this.particle_x=x+5;
        System.out.println("Particle_X:"+this.particle_x);
    }

public void setYPosition_particle(int y)
{
    particle_y=y+5;
    System.out.println("Particle_Y:"+this.particle_y);
}   

我想要的是每个粒子的位置应该增加 5。但是在输出中,每个粒子都获得相同的值。我的 JPanel 上出现一条对角线。我应该如何单独访问每个实例变量?

output image

最佳答案

为什么不创建一个 Particle 类并维护一个 List<Particule>

关于java - 如何分别访问对象变量的所有不同实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25108447/

相关文章:

Java Swing Invoice String.format 仅将 for () {} 值返回到 JTextPane?

java - 允许指定列名会导致潜在的 SQL 注入(inject)风险

java - JTable 通过输入第一个单元格值加载行

java - 从 Access 数据库填充 JTable

javascript - 如何检查数组的所有对象是否包含另一个数组?

javascript - typescript |与端点的接口(interface)

javascript - 使用 .each() 从表行中创建嵌套对象

java - 线程本地握手的解释

java - 在android中应用ScaleAnimation后如何缩放 View 的点击/触摸区域?

java - 生成唯一的随机数