Swings:将List中的选定值存储到数组中。

时间:2015-03-25 08:29:16

标签: java swing selection jlist

我在java中创建了一个List,如下所示:

 String names[] = {"abc@gmail.com", "def@gmail.com","ghi@gmail.com","jkl@gmail.com"};
 JList places = new JList(names) ;

然后,为了访问我在valueChanged方法中写的选定值:

String[] emailID= places.getSelectedValuesList().toString[];

这是不正确的...请帮助我如何重写这一行,以便所选的值存储在数组中。

2 个答案:

答案 0 :(得分:1)

如果您想将所有选定的项目作为数组,您可以执行以下操作:

public static void main(String[] args){

    String names[] = {"abc@gmail.com", "def@gmail.com","ghi@gmail.com","jkl@gmail.com"};
    JList<String> places = new JList<String>(names) ;

    places.setSelectedIndices(new int[]{0,1,2});

    String[] emailIDs = places.getSelectedValuesList().toArray(new String[]{});

    for(String s : emailIDs){
        System.out.println(s);
    }
}

注意:

我在列表中添加了<String>,因为我假设您始终希望将字符串作为值。这样,您可以使用通用输出获取List .toArray()方法。否则,您需要获取Object[](对象数组)并投射值。

答案 1 :(得分:1)

对于存储字符串数组中的所选项目,您可以尝试此

  Object[] values = places.getSelectedValues();
    String[] strings = new String[values.length];
    for(int i = 0; i < values.length; i++) {
      if(values[i] instanceof String) {
        strings[i] = ((String) values[i]);
      }
    }