Java - JList.getSelectedValuesList () не работает в файле JAR - PullRequest
2 голосов
/ 28 февраля 2012

Я писал программу с Swing и использовал JList для отображения нескольких объектов E. Я хотел иметь возможность удалять объекты из списка с помощью кнопки.Внутри ActionListener я кодировал:

List<Data> datas = dataList.getSelectedValuesList();
for(Data data : datas)
    deleteData(data);
dataList.setListData(getDatas());

Это отлично работало при запуске его в Eclipse или в консоли с 'java -jar xyz.jar'.Однако при двойном щелчке по файлу .jar кнопка удаления вообще не сработала, из списка ничего не было удалено, и даже не возникла ошибка.

Поэтому я протестировал List.getSelectedValues() метод:

Object[] datas = dataList.getSelectedValues();
for(Object data : datas)
     deleteData((Data)data);
dataList.setListData(getDatas());

Этот метод работал отлично.Тем не менее, этот метод считается устаревшим с JDK 1.7 в пользу getSelectedValuesList ().Может кто-нибудь объяснить мне проблему?Это проблема сборки Java?Как я могу по-прежнему использовать не осуждаемый метод?

Спасибо!

1 Ответ

3 голосов
/ 29 февраля 2012

Скорее всего, на вашем компьютере установлено несколько версий Java. Когда вы запускаете его из командной строки, оно запускает ваше приложение с одной версией Java, а когда вы дважды щелкаете мышью по другой.

Вместо двойного щелчка вы должны щелкнуть правой кнопкой мыши и сделать «Открыть с помощью ...» и выбрать версию Java, с которой было скомпилировано ваше приложение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...