У меня есть таблица базы данных (доступ), которая содержит данные, которые я хотел бы заполнить в списке в моей Java-программе. Таблица состоит из нескольких столбцов (идентификатор, имя и т. Д.)
Я хотел бы, чтобы в JList были перечислены все имена, а затем, когда дважды щелкнул элемент из списка, я бы хотел, чтобы номер идентификатора этого элемента был вставлен в другую таблицу.
Я уже реализовал список и заполнил его записями из таблицы БД (столбец имени). У меня проблемы с тем, когда пользователь дважды щелкает элемент, как я могу получить идентификатор для этого видео? Вызов базы данных, который заполняет список, выбирает несколько столбцов и помещает их все в массив, не совсем уверенный, как я могу связать этот элемент списка с массивом.
Вот что я получил до сих пор ...
Java-класс
ArrayList list = new ArrayList();
ArrayList video = new ArrayList();
list = VideoData.getVideoList();
JList videolist = new JList();;
Vector data = new Vector();;
for (int i=0; i < list.size(); i++) {
video = (ArrayList) list.get(i);
data.addElement(video.get(3));
}
videolist.setListData(data);
videolist.setSelectedIndex(0);
videolist.addMouseListener(new ActionJList(videolist));
videolist.setFixedCellWidth(300);
add(new JScrollPane(videolist));
Что содержит getVideoList ()
ArrayList list = new ArrayList();
try {
ResultSet res = stmt.executeQuery("SELECT * FROM Items ORDER BY VidID ASC");
while (res.next()) { // there is a result
ArrayList sub = new ArrayList();
sub.add(res.getString("VidID"));;
sub.add(res.getString("Name"));
sub.add(res.getString("Writer"));
// add sub array to list
list.add(sub);
}
} catch (Exception e) {
System.out.println(e);
return null;
}
return list;
Текущая функция doulbe-click следующая (которую я нашел в сети)
public void mouseClicked(MouseEvent e){
if(e.getClickCount() == 2){ // double click
int index = list.locationToIndex(e.getPoint());
ListModel dlm = list.getModel();
Object item = dlm.getElementAt(index);;
list.ensureIndexIsVisible(index);
System.out.println("Double clicked on " + item);
}
}
.. Из этого элемента сообщается только то, что указано в ячейке JList. Что мне нужно, чтобы получить возможность получить другие данные массива для этого выбранного элемента.