如何将元素从一个JList传递到Java中的其他JList?

时间:2010-01-22 15:09:58

标签: java user-interface swing jlist

我在swing GUI上有两个JList。现在我希望当用户点击一个按钮(比如TransferButton)时,一个JList中的选定元素从第一个JList添加到第二个JList,并从第一个JList中删除那些选定的元素。

3 个答案:

答案 0 :(得分:3)

该模型不了解选择。

JList提供了几种获取所选项目或选定索引的方法。使用这些方法获取项目并将其添加到其他列表的模型中。

答案 1 :(得分:2)

你有两个JList,然后你也有各自的ListModel。根据您实现它们的方式,您可以从一个模型中删除元素并将它们添加到另一个模型中。但请注意,ListModel接口默认情况下不关心元素访问,因此您可能需要自己实现addremove方法。

答案 2 :(得分:1)

DefaultListModel leftModel = new DefaultListModel();
leftModel.addElement("Element 1");
leftModel.addElement("Element 2");
leftModel.addElement("Element 3");
leftModel.addElement("Element 5");
leftModel.addElement("Element 6");
leftModel.addElement("Element 7");

JList leftList = new JList(leftModel);

DefaultListModel rightModel = new DefaultListModel();
JList rightList = new JList(rightModel);

让我们假设您有两个JList组件,如上面的代码(左侧和右侧)所述。您必须编写以下代码以将选定值从左侧传递到右侧JList。

for(Object selectedValue:leftList.getSelectedValuesList()){
    rightModel.addElement(selectedValue);
    leftModel.removeElement(selectedValue);
}