2013-03-05 84 views
1

我使用4个JList s表示是一个数组,显示在一个JList中选择的项目到另一个在Java

JList jlst = new JList[4]; 

然后我加入第一列表项从对象数组,

jlst[0].setListData(getObjAL()); 

这里函数getObjAL()函数将给出对象数组。

我想显示第一个列表(jlst[0])的选定项目到第二个列表(jlst[1])。

对于我写的代码,

jlstPrimitives[i].addListSelectionListener(new ListSelectionListener() { 
    @Override 
    public void valueChanged(ListSelectionEvent listevt) { 
     Jlist objLstTemp = (Jlist) listevt.getSource(); 
     jlst[1].setListData(objLstTemp.getSelectedValue())); 
    } 
}); 

但它不是在list[1]显示。 请任何人帮我...

+1

您是否将侦听器添加到正确的JList?该索引应该是“0”。您是否将调试代码添加到您的侦听器以查看它被调用?你的代码如何编译? getSelectedValue()返回一个单独的元素。 setListData()需要一个Vector。你可以创建一个名为“jlst”的数组,但是你可以添加监听器给“jlstPrimitives”。该变量来自哪里?发布的代码太混乱,无法提供帮助。您需要发布SSCCE。 – camickr 2013-03-05 06:10:29

回答

1

我可以想到十几件事情可能会出错,没有一件会影响你。为了在未来提供更好的支持,请发布一个演示您的问题的可运行示例。从上下文中粘贴代码不会有帮助(很多)。

从您的代码中,getObjAL()似乎要返回一个Object[]数组(单维),但是当您选择一个值时,您似乎认为所选值实际上是一个数组,而我确信它不是数组“T。可能是对象数组(Object[])或Vector

尝试这样的事情,而不是。

jlstPrimitives[i].addListSelectionListener(new ListSelectionListener() { 
    @Override 
    public void valueChanged(ListSelectionEvent listevt) { 
     Jlist objLstTemp = (Jlist) listevt.getSource(); 
     jlst[1].setListData(new Object[]{objLstTemp.getSelectedValue()})); 
    } 
}); 
相关问题