1

jList2.setListData(jList1.getSelectedValues());
我用它来将数据从 jlist1 传输到 jlist2。但我想从 jlist1 中删除传输的数据。怎么可能。

4

2 回答 2

1

首先:getSelectedValues()已弃用,使用getSelectedValuesList()泛型将它们作为列表获取。

其次,在创建 JList 之前创建一个 DefaultListModel,以便您可以添加/删除它,例如

DefaultListModel<String> model = new DefaultListModel<String>();
DefaultListModel<String> model2 = new DefaultListModel<String>();
JList<String> list1 = new JList<>(model);
JList<String> list2 = new JList<>(model2);

...

for(String s : list1.getSelectedValuesList()){
    model2.addElement(s);
    model.removeElement(s);
}

请记住,列表和模型的更改必须在事件调度线程上执行

于 2012-08-02T14:51:23.213 回答
1

有两种方法

  • 在 Oracle 页面上查看 Drag an Drop 教程

  • 在 mouseDragged 上从一个 JList 中删除 selectedItem 并增加秒数,注意这个想法需要更好地了解 Java Swing

于 2012-08-02T14:52:28.830 回答