我的程序有问题。我出于某种原因无法从我的一个列表中获取项目到另一个列表。
defaultListModel model1 = new DefaultListModel();
DefaultListModel model2 = new DefaultListModel();
//check an item is selected from listbox
if (lstlibrary.getSelectedIndex() != -1) {
int position;
position = array1.indexOf(lstlibrary.getSelectedValue());
array2.add(array1.get(position));
array1.remove(position);
//move array to listbox model
for (String value1 : array1) {
model1.addElement(value1);
}
lstlibrary.setModel(model1);
for (String value2 : array2) {
model1.addElement(value2);
}
lstlibrary.setModel(model2);
这是我老师告诉我的事情,我无法解决这个问题。我已经尝试了一切,我不知道该怎么做,我有点新意,所以如果有人能帮助我,那就太棒了!
答案 0 :(得分:1)
问题是您尝试将model2设置为与读取所选项目相同的列表。您必须有两个列表,例如lstlibrary1和lstlibrary2 并尝试将项目从lstlibrary1移动到lstlibrary2 所以改变这个
的最后几行 for (String value2 : array2) {
model1.addElement(value2);
}
lstlibrary.setModel(model2);
到这个
for (String value2 : array2) {
model2.addElement(value2);
}
lstplaylist.setModel(model2);
如果第二个列表对象名是lstplaylist 同样在第二个for循环中,你必须使用model2而不是model1
===============================
尝试更改这些功能以解决问题
for btnToPlaylistMouseClicked()将最后两个for循环改为此
// refreshing lstlibrary to remove selected name
for (String value1 : array1) {
model1.addElement(value1);// adding elements to model1
}
lstlibrary.setModel(model1);// using model1 for lstlibrary
//refreshing lstplaylist to add new selected name
for (String value2 : array2) {
model2.addElement(value2);// adding elements to model2
}
lstplaylist.setModel(model2);// using model2 for lstplaylist
也可以将这些for循环用于btnRemoveMouseClicked()。 你也有问题。