2011-08-10 60 views
0

如果我在java中使用drawString(String,Int,Int)命令。如何存儲/調用已存儲在ArrayList中的不同圖形?java抽繩arraylist

因此,例如,

ArrayList<what type will this be???> list = new ArrayList; 
int pos = 0; 
for (int i = 0; i < list.size(); i++) { 
    g.get(i).drawString("hello", 50, 50 + pos); 
    pos += 20; 
} 
+0

爲什麼不使用'JLabel'? – trashgod

回答

0

您是不是要找:

list.get(i).drawString("hello", 50, 50 + pos); 

如果你想給不同的對象/形狀存儲在ArrayList<T>時,T必須是確定drawString()一個超類。否則,這段代碼將不能編譯。

+0

如果我是讓我們說一個整數,我從0 - 10迭代,並創建10個字符串「你好」在不同的位置,如果我然後調用list.get(2).drawString(「hello」,100,100);只會移動列表位置2引用的字符串之一嗎? – Ricco

0

我用這一個程序:

ArrayList<String[]> StringsToDraw = new ArrayList<String[]>(); 

StringsToDraw.add(new String[] {"Hello","20","35"}); 
StringsToDraw.add(new String[] {"World","100","100"}); 

@Override 
public void paint(Graphics g){ 
    for(String[] printMe : StringsToDraw){ 
    drawString(g, printMe[0], printMe[1], printMe[2]) 
    } 
} 

public void drawString(Graphics gr, String text, String xString, String yString){ 
    int x = Integer.parseInt(xString); 
    int y = Integer.parseInt(yString); 
    gr.drawString(text, x, y); 
} 
0

什麼問題做呢?

List<Graphics2D> list = new ArrayList<Graphics2D>(); 
    int pos = 0; 
    for (Graphics2D g : list) { 
     g.drawString("hello", 50, 50 + pos); 
     pos += 20; 
    } 

,你可以更好地使用的for-each和使用接口列表定義列表對象。