Я следующий код выполнить по нажатию кнопки:Java: JList находит только индексы в видимом диапазоне
while(count<listAmount){
tbiCList.setSelectedIndex(0);
String item = JList.getSelectedValue();
String update[] = item.split(", ");
//this part removed for sake of post
remove(item);
count++;
}
Примечания:
count
начинается как 0, listAmount
это количество элементов в JList
, и remove()
- метод, который у меня есть, который удаляет выбранный элемент.
Все это прекрасно работает и денди, но проблема заключается в том, что он выбирает и удаляет элементы, которые видны при нажатии кнопки, а не элементы, которые находятся за панелью прокрутки. Конечно, я мог бы просто нажать кнопку снова и получить следующий набор элементов, но, я программист, и я хочу простую способ выполнения моей задачи.
UPDATE
я понял, что я устанавливаю listAmount
получая LastVisibleIndex();
Мой плохо.
Мой вопрос сейчас: Как получить listAmount
каждый раз, когда обновляется команда while
?
ОБНОВЛЕНИЕ НА ОБНОВЛЕНИЕ
Потому что я нетерпелив, я, как правило, сделать это очень много, так что, я извиняюсь.
Я понял, как исправить мою проблему. Внутри цикла while
я просто добавил +1 к переменной listAmount
, а затем, когда он дал мне NullPointerException
, я добавил блок try
вокруг блока while
. Так вот, проблема исправлена.
В ответ на ваши изменения: Для того, чтобы получить новый listAmount просто использовать тот же метод, который вы использовали, чтобы получить его в первый раз, но поставить его внутри время цикла? – sorifiend
Проблема в том, что я не могу поместить переменную внутри цикла, потому что цикл while ** использует ** эту переменную. Но я действительно понял, как это сделать. Редактирование вопроса сейчас ... –
И я уверен, что ваш ответ может просто помочь, но проблема в следующем: мне нужно выбирать значения один за другим, назначать их одной строке, поэтому я могу использовать ее для SQL-запроса. Я ценю, что вы пытаетесь помочь! : D –