JList - получение значения из клика

Есть ли способ использовать ListSelectionListener или MouseAdapter для получения информации о выбранном значении (если value, например, String), есть ли встроенный метод для этого?

Я только знаю, как получить правильные индексы, но не content или content.toString()

Я добавляю такой элемент:

{
    DefaultListModel listModel;

    listModel.addElement(name);
}

@Редактировать
Спасибо вам за помощь. Я решил свою проблему, выполнив это (для будущих поколений, чтобы им не пришлось искать, как я):

    list.addMouseListener(new MouseAdapter(){
          @Override
          public void mouseClicked(MouseEvent e) {
              System.out.println("Mouse click.");
              int index = list.getSelectedIndex();
              System.out.println("Index Selected: " + index);
              String s = (String) list.getSelectedValue();
              System.out.println("Value Selected: " + s.toString());
          }
    });

1 ответ

При использовании JList Вы можете просто использовать JList#getSelectedValue(), который будет возвращать фактический объект, выбранный в текущий момент.

Если вы делаете это изнутри MouseListener было бы лучше использовать JList#locationToIndex а затем получить значение из JList используя его индекс

 String value = (String)list.getModel().getElementAt(list.locationToIndex(e.getPoint()));
Другие вопросы по тегам