Попытка удалить элемент из объекта DefaultListModel

с использованием Java версии 9 У меня есть тестовый код для удаления элемента из списка, созданного путем передачи ссылки DefaultListModel. Это то, что я делаю.

  1. создать объект DefaultListModel
  2. добавьте к нему 8 элементов (A..H), вызвав addElement
  3. удалить элемент, вызвав removeElement
  4. создать Jlist передать ссылку моего DefaultListModel на него
  5. В списке отображаются все 8 элементов, ничего не удалено. код

     philosophers = new DefaultListModel<String>();
     philosophers.addElement( "A" );
     philosophers.addElement( "B" );
     philosophers.addElement( "C" );
     philosophers.addElement( "D" );
     philosophers.addElement( "E" );
     philosophers.addElement( "F" );
     philosophers.addElement( "G" );
     philosophers.addElement( "H" );
     philosophers.removeElement(1);
     lista = new JList<String>( philosophers );      
    
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
562
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Если у вас возникнет проблема, нажмите JavaDocs ...

DefaultListModel#removeElement

public boolean removeElement(Object obj)
Removes the

first (lowest-indexed) occurrence of the argument from this list.

Parameters:
obj - the component to be removed

Интересный момент здесь заключается в том, что параметр - это Object, а не индекс. Это означает, что с помощью автоматической упаковки Java вы фактически пытаетесь удалить Integer(1), которого нет в модели.

Вместо этого, если бы вы сделали что-то вроде philosophers.removeElement("B");, возможно, вам повезло больше.

Однако, если мы прочитаем немного больше в JavaDocs, мы найдем

DefaultListModel#remove

public E remove(int index)
Removes the element at the

specified position in this list. Returns the element that was removed from the list.

Throws an ArrayIndexOutOfBoundsException if the index is out of range (index < 0 || index >= size()).

Parameters:
index - the index of the element to removed

Ах, это больше похоже на то, что тебе нужно

Другие вопросы по теме