2015-04-13 2 views
0

Я пытаюсь создать кнопку для переноса элемента из одного списка в другой. Когда обработчик вызывает функцию для идентификации выбранного элемента из списка, он не возвращает значение, которое заставляет программу выбрасывать исключение нулевого указателя. Я не могу понять, почему это не работает, у кого-нибудь есть идеи?Java получает выбранное значение, не возвращающее правильное значение

Внутри контроллера

private class AddHandler implements ActionListener { 
    public void actionPerformed(ActionEvent e) { 

     if(totalcredits<=120){ 
     **Module tmp = selectorPnl.getUnselectedModule();** 
     selectorPnl.addtoSM(tmp); 
     selectorPnl.rmvUSM(tmp); 

     totalcredits = totalcredits+tmp.getCredits(); 

     } 
     else 
      JOptionPane.showMessageDialog(null, "Exceeds credit allowance",  "Selector Error", JOptionPane.ERROR_MESSAGE); 

    } 
} 

Панель

public Module getUnselectedModule() 
{ 
     return lstUnselectedModule.getSelectedValue(); 
} 
public void addtoSM(Module list) 
{ 
    SM.addElement(list); 
} 
public void rmvUSM(Module list) 
{ 
    USM.removeElement(list); 
} 

Edit: просто нужно было включить компьютер и включите его снова. Сейчас работает отлично. Это означает, что я еще больше потерял, почему это было не раньше

+0

'getSelectedValue()' возвращает значение null, если нет выбранного значения. Таким образом, либо вы ничего не выбрали, либо вы выбрали единство в другом JList. Если вы хотите переместить что-то из одного списка в другой, почему вы получаете выбранное значение lstUnselectedModule, но удаляете его из USM? –

+0

Я нажал на элемент в списке, и я попробовал все разные списки. –

+1

Попытка случайных вещей не заставит вас далеко ходить. Если вам нужна помощь, напишите полный минимальный пример, воспроизводящий проблему. –

ответ

0

Убедитесь, что в вашей панели создан экземпляр lstUnselectedModule, но и .getSelectedValue() заставляет этот метод возвращать то, что я бы предположил, это не модуль. Просто верните его lstUnselectedModule.

Смежные вопросы