ошибка компиляции при добавлении элемента из jlist - PullRequest
1 голос
/ 04 сентября 2011

Я пытаюсь добавить элемент из Jlist в другой, добавьте, если это правильный термин во время поиска я нашел этот код и попробовал его, но он не работает

ListModel made_model = made_list.getModel(); // 1

Object[] orig_sel = orig_list.getSelectedItems(); // 2

Object[] new_made_model = new Object[made_model.size() + orig_sel.length]; // 3

// this block is 4
int i = 0;
for(;i < made_model.size(); i++) 
    new_made_model[i] = made_model.getElementAt(i);
for(; i < new_made_model.length; i++) 
    new_made_model[i] = orig_sel[i - made_model.size());

made_model.setListData(new_made_model); // 5

ошибка в этой строке

  • made_model.setListData (new_made_model); // 5 это говорит мне, чтобы я сделал cast_model в Jlist, что я и сделал, но затем, когда я запускаю класс, я получаю эту ошибку

  • javax.swing.JList $ 1 нельзя преобразовать в javax.swing.JList

1 Ответ

4 голосов
/ 04 сентября 2011

setListData() - это метод JList, а не ListModel. Вы не можете преобразовать ListModel в JList.

Ваш код должен быть:

madeList.setListData( newMadeModel );

Edit:

Вместо того, чтобы играть с массивами для создания новой модели, просто используйте DefaultListModel:

DefaultListModel model = new DefaultListModel();

Затем вы можете добавлять объекты непосредственно в модель, не используя индексы:

model.addElement(...);

Когда вы закончите, вы добавите модель в список:

list.setModel( model );

Таким образом, вы с меньшей вероятностью ошибетесь, играя с индексами 3 массивов.

Если вам нужна дополнительная помощь, примите этот ответ (поскольку речь шла об ошибке компиляции) и опубликуйте новый вопрос с правильным SSCCE , который демонстрирует проблему.

...