Java рисует строки, используя данные из ArrayList - PullRequest
1 голос
/ 05 января 2012

У меня проблема с графикой Java, я пишу программу, которая читает текстовый файл и отображает некоторые результаты.

Например:

Текстовый файл

print("Text",20,100)
print("Hello",135,50)

Желаемый результат 2 Строки отображаются на экране. Но я беру только последний.

Пример моего кода:

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

//Add some data to the List
StringsToDraw.add(new String[] {"Hello","20","35"}); 
StringsToDraw.add(new String[] {"World","100","100"}); 

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

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

Как я могу изменить его, чтобы он отображал их обоих?

1 Ответ

0 голосов
/ 05 января 2012

Ваша ограничительная коробка может быть слишком маленькой.Попробуйте и посмотрите, работает ли он для вас:

public class Graphics2DTest extends JFrame {
    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        Graphics2DTest test = new Graphics2DTest();
        System.out.println(test);
    }

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

    public Graphics2DTest() {
        super();

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

        setSize(400, 400);
        setBackground(Color.YELLOW);
        setForeground(Color.BLUE);
        setVisible(true);
    }

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

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