如何将Lists(java.util.list)中的值传递给paint方法?

时间:2012-10-22 12:45:38

标签: java xml-parsing

我有关于XML和java.util.List的问题。在我的脚本中,我能够从输入解析XML文件,系统写入我,例如[124,123],[123,130](根据输入文件中的内容。)但我的问题是 - 如何将值从xList和yList传递给paint方法?我需要做什么?设定/获得价值?或者可能有更好的方法来做到这一点。感谢

我的剧本的一部分:

    try
        {

        SAXParserFactory factory = SAXParserFactory.newInstance();
        SAXParser saxParser = factory.newSAXParser();

        MyDefaultHandler handler = new MyDefaultHandler();
        saxParser.parse(filechooser.getSelectedFile(), handler);
        System.out.println(handler.getXList() + ", " + handler.getYList());
    }
    catch (Exception exe)
    {
        exe.printStackTrace();
    }
    }    
        }

    class MyDefaultHandler extends DefaultHandler
{
    final List<Integer> xList = new ArrayList<Integer>();
    final List<Integer> yList = new ArrayList<Integer>();

    boolean xele = false;
    boolean yele = false;

    public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException
    {

        if (qName.equalsIgnoreCase("X"))
        {
            xele = true;
        }

        if (qName.equalsIgnoreCase("Y"))
        {
            yele = true;
        }


    }

    public void characters(char ch[], int start, int length) throws SAXException
    {

        if (xele)
        {
            System.out.println("X value : " + new String(ch, start, length));
            xele = false;
            xList.add(Integer.parseInt(new String(ch, start, length)));
        }

        if (yele)
        {
            System.out.println("Y value : " + new String(ch, start, length));
            yele = false;
            yList.add(Integer.parseInt(new String(ch, start, length)));

        }
;
    }

    final List<Integer> getXList()
    {
        return xList;

    }

    final List<Integer> getYList()
    {
        return yList;
    }

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,并期望这些名单的长度相同,你需要这样的东西:

for (int i=0; i<xList.size(); i++) { paint(xList.get(i),yList.get(i)); }