1

我正在尝试使用 libVirt 创建一个活动虚拟机列表并用它们填充一个组合框不幸的是,有些东西不好

public ArrayList<String> getActiveVirtualMachines() throws LibvirtException
{
    int[] vmsOn = connect.listDomains();
    Domain array=null;
    vmsWl.clear();

    System.out.println("List of running vms: ");
    for (int i = 0; i < vmsOn.length; i++) 
    {
        array = connect.domainLookupByID(vmsOn[i]);
        vmsWl.add(array.getName());
    }   

    for (int i = 0; i < vmsWl.size(); i++) {
        System.out.println(vmsWl);
    }

    return vmsWl;
}

该列表如下所示:

正在运行的虚拟机列表:

[Ubuntu,testNew2]

[Ubuntu,testNew2]

相对于:正在运行的虚拟机列表:

Ubuntu

测试新2

组合框也是如此,有两个相同的条目:

[Ubuntu,testNew2] [Ubuntu,testNew2]

4

1 回答 1

0

似乎当您遍历列表时,您正在打印整个列表,而不仅仅是您需要的特定元素,因此请考虑替换

for (int i = 0; i < vmsWl.size(); i++) {
    System.out.println(vmsWl);
}

for (int i = 0; i < vmsWl.size(); i++) {
    System.out.println(vmsWl.get(i));
}

甚至更好:

for (String name : vmsWl) {
    System.out.println(name);
}
于 2014-06-16T15:15:13.827 回答