0

XML と java.util.List に関する問題があります。私のスクリプトでは、入力からXMLファイルを解析でき、システムは[124、123]、[123、130]などと書いています(これによると、入力ファイルの内容です)が、私の質問は-xListから値を渡す方法ですペイントメソッドへのyList?私は何をしなければなりませんか?値の設定/取得? または、それを行うためのより良い方法があるかもしれません。ありがとう

私のスクリプトの一部:

    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;
    }
4

1 に答える 1

2

あなたの質問を理解し、リストが同じ長さであることを期待している場合は、次のようなものが必要になります。

for (int i=0; i<xList.size(); i++) { paint(xList.get(i),yList.get(i)); } 
于 2012-10-22T12:55:36.387 に答える