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