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

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

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

Я добавляю элемент следующим образом:

{
    DefaultListModel listModel;

    listModel.addElement(name);
}

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

    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());
          }
    });

person Community    schedule 15.06.2014    source источник


Ответы (1)


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

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

 String value = (String)list.getModel().getElementAt(list.locationToIndex(e.getPoint()));
person MadProgrammer    schedule 16.06.2014