0

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

4

3 回答 3

3

该模型不知道选择。

JList 提供了几种方法来获取选定项或选定索引。使用这些方法获取项目并将它们添加到另一个列表的模型中。

于 2010-01-22T15:30:34.227 回答
2

你有两个JLists,那么你也有他们各自ListModel的s。根据您实现它们的方式,您可以从一个模型中删除元素并将它们添加到另一个模型中。但是请注意,默认情况下,该ListModel接口只关心元素访问,因此您可能必须自己在那里实现addremove方法。

于 2010-01-22T15:13:01.033 回答
2
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);
}
于 2014-02-17T12:18:36.440 回答