Задать вопрос
@Bartar

Почему у меня строки равны null?

Я хотел отобразить в ListView картинку и текст . Но у меня вылетает ошибка java.lang.NullPointerException update item , а если сделать проверку на то что item равен null, то тогда все работает , но не отображает текст .
это метод, где я создаю объект
public ObservableList addUser (){
       // List<Contact> userList = new ArrayList<>();
        ObservableList<Contact> userObservableList = FXCollections.observableArrayList();
        userObservableList.addAll(new Contact(AVATAR,"Megan","Fox",NET_INDICATOR));
        return userObservableList;
    }

вот здесь я отображаю
@Override
    protected void updateItem(Contact contact, boolean empty) {
        super.updateItem(contact, empty);
        if ( empty||contact == null){

            setText(null);
            setGraphic(null);
        }else {
            if (mFXMLLoader == null) {
               
                mFXMLLoader = new FXMLLoader(getClass().getClassLoader().getResource("fxml/contactList.fxml"));
                mFXMLLoader.setController(this);
                try {
                    mFXMLLoader.load();
                } catch (IOException e) {
                    System.out.println(" не загрузил ");
                }
                Image avatar = new Image(contact.getAvatar());

                avatarContactList.setImage(avatar);
                /* TODO Если убрать проверку то вылетает исключение */
                if (contact == null){
                    lblName.setText(contact.getName());
                    lblSense.setText(contact.getSense());
                }
                Image indicator = new Image(contact.getNetStatus());

                netStatusContactList.setImage(indicator);
                setText(null);
                setGraphic(contactList);
            }else {
                System.out.println("Снова  не получилось, LOADER != Null ");
           }
        }
    }
  • Вопрос задан
  • 187 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@zelan
Кратко обо мне не получится.
если вылетает здесь:
if (contact == null){
         lblName.setText(contact.getName());
         lblSense.setText(contact.getSense());
 }


то lblName или lblSense, а может быть и оба - не инициализированы и раны null.

Почему? Надо больше кода.
Прикол в том, что эта проверка бессмысленна, если бы контакт был бы равен null, то ты бы обработал этот вариант тут:

if ( empty||contact == null){
            setText(null);
            setGraphic(null);
}

А если ты дошел сюда, то контакт ТОЧНО не равен null.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы