Я бы предложил использовать внутренний класс, который содержит любой объект, который вы в настоящее время помещаете в JList, и добавить переменную-член счетчика, а также переопределить toString ().
class MyListItem
{
int selectionCount;
Object listItem; //may consider generics here, but left them out cause they can be tricky
public MyListItem(Object item)
{
selectionCount=0;
listItem=item;
}
public void incrementSelectionCount()
{
selectionCount++;
}
public String toString()
{
return listItem.toString() + " has been clicked " + selectionCount + " times.");
}
}
Затем в слушателе действий
private void jButton5ActionPerformed(java.awt.event.ActionEvent evt)
{
int[] selection = jList3.getSelectedIndices();
for (int selectedIndex : selection)
{
Object selString = jList3.getModel().getElementAt(selectedIndex);
if(selString instanceOf MyListItem)
{
MyListItem selItem = (MyListItem) selString;
selItem.incrementSelectionCount();
System.out.println(selString);
}
}
}
Это должно сэкономить время при поиске, боксе и т. Д. Кроме того, это помогает сохранять разумность в процессе роста проекта, поскольку MyListItem может быть увеличен для работы со всеми типами действий, которые вам могут понадобиться в будущем.в случае, если вы хотите, чтобы происходили разные вещи, кроме нажатий кнопок.Основная идея здесь заключается в том, что MyListItem должен отслеживать все, что вас интересует в отслеживании, поэтому вам не нужно многократные списки и, что еще хуже, не забудьте добавить элемент в JList и HashMap или любую другую структуру данных.Таким образом, это либо на каждой структуре данных, она должна быть, либо не на всех.