java抽绳数组列表

java抽绳数组列表,java,user-interface,arraylist,paint,Java,User Interface,Arraylist,Paint,如果我在java中使用drawString(String,Int,Int)命令。如何存储/调用存储在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

如果我在java中使用drawString(String,Int,Int)命令。如何存储/调用存储在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;
}
ArrayList list=新的ArrayList;
int pos=0;
对于(int i=0;i
你的意思是:

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

如果要在
ArrayList
中存储不同的对象/形状,T必须是定义
drawString()
的超类。否则此代码将无法编译。

我将其用于一个程序:

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); 
}
ArrayList StringsToDraw=new ArrayList();
添加(新字符串[]{“Hello”、“20”、“35”});
添加(新字符串[]{“World”、“100”、“100”});
@凌驾
公共空间涂料(图g){
对于(String[]printMe:StringsToDraw){
抽绳(g,printMe[0],printMe[1],printMe[2])
} 
} 
公共空字符串(图形gr、字符串文本、字符串xString、字符串yString){
intx=Integer.parseInt(xString);
int y=Integer.parseInt(yString);
gr.抽绳(文本,x,y);
}

这样做有什么问题

    List<Graphics2D> list = new ArrayList<Graphics2D>();
    int pos = 0;
    for (Graphics2D g : list) {
        g.drawString("hello", 50, 50 + pos);
        pos += 20;
    }
List List=new ArrayList();
int pos=0;
用于(图形2D:列表){
g、 抽绳(“你好”,50,50+位置);
pos+=20;
}

您可以更好地为每个对象使用,并使用接口列表定义列表对象。

如果我是一个整数,我从0到10迭代,在不同位置创建10个字符串“hello”,如果我调用list.get(2).drawString(“hello”,100100);这将只移动列表位置2引用的一个字符串吗?