簡體   English   中英

Java-ArrayList中對象的調用方法

[英]Java - calling methods of an object that is in ArrayList

我有一個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);

您可以執行“ cast”以檢索ArrayList的Kostka元素:

for (int i = 0; i < kos.size(); i++) {
    Kostka kostka = (Kotska)kos.get(i);
    kostka.maluj(g);
}

如果使用支持泛型的Java版本,則不需要進行強制轉換。 你可以做:

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

for (int i = 0; i < kos.size(); i++) {
    Kostka kostka = kos.get(i);
    kostka.maluj(g);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM