我有一个Kostka类,它具有自己的宽度(w),高度(h),x和y位置,以便以后使用此方法在JPanel上进行绘制

void maluj(Graphics g) {
    g.drawRect(x, y, w, h);
}


现在,我需要更多它们,并将它们添加到ArrayList中。然后为存储在ArrayList中的每个Kostka对象调用maluj(g)方法



到目前为止,我已经设法制作了一种将Kostka对象存储在ArrayList中的方法,但是我不知道如何调用它们的方法

class MyPanel extends JPanel {
    ArrayList kos = new ArrayList(5);

    void addKostka() {
        kos.add(new Kostka(20,20,20,20));
    }

    public void paintComponent (Graphics g) {
        super.paintComponent(g);
    }
}

最佳答案

调用方法

这样做是正常的:

// where kostka is an instance of the Kostka type
kostka.whateverMethodYouWant();


但是,从列表中检索kostka的方式将取决于声明列表的方式。

使用“好方法”(Java 1.5之前的样式)

// where index is the position of the the element you want in the list
Kostka kostka = (Kotska) kos.get(index);


使用泛型(更好的方法)

ArrayList<Kostka> kos = new ArrayList<Kostka>(5);

Kostka kostka = kos.get(index);

10-04 17:59