直接用 String[] str = list.getSelectedValues();应该可以了吧

解决方案 »

  1.   

    String[] strVals = new String[obj.length];
    System.arrayCopy(...);
      

  2.   

    谢谢adamzhang!直接用String[] str = list.getSelectedValues()是不行的
      

  3.   

    netKid,用obj.length取不出obj对象的长度呀!好象Object没有length这个属性吧.
      

  4.   

    你为什么非要object[]-->String[]呢?你的zipentry函数不是接收string类型的参数么?又不是一个字符串数组。不必要增加这种麻烦,给对象数组的每个元素进行转型即可,如果你的函数接收参数是String[]数组,那么可以适当修改接口成Object[],然后再在函数内对每个元素进行转换。
      

  5.   

    obj是Object[] obj,当然有length属性。用arraycopy也是一个办法,参考java.lang.System这个函数的使用方法。
      

  6.   

    谢谢 netKid!我用如下方法完成了:String strVals = new String[Obj.length];for(int i = 0; i < obj.length;i++)
    {
    str[i] = (String)obj[i];
    }我想obj.length之所以能执行,是不是因为 obj 是一个数组,而不是一个对象的原因?另外,我用你说的System.arrayCopy()不能执行,因为用该方法仍会涉及到取对象的长度。按你的方法,我写的如下:String strVals = new String[Obj.length];for(int i = 0; i < obj.length;i++)
    {
    System.arrayCopy(obj[i],0,strVals[i],0,obj[i].length);
    }对arrayCopy最后一个参数即会要求取对象的长度,我想这是不行的,你有别的办法吗?。
      

  7.   

    如过是只会选择一个文件名,可以用getSelectedValue()方法
    String filename=(String)filelist.getSelectedValue();
    多选的话,上面的方法就需要用一个循环来一个一个转了