我有一個(訪問)數據庫表,其中包含我想要填充到我的Java程序列表中的數據。該表由多個柱(ID,名稱等)檢索JList項目的數組數據
我想要的是一個JList列出所有的名稱(S),然後當從列表中的項目已被雙擊我想要的ID號爲該項目將被插入到另一個表中。
我已經實現了該列表並使用db表(名稱列)中的記錄填充它。我遇到的問題是用戶雙擊該項目時,我如何才能獲取該視頻的ID?填充列表的數據庫調用會選擇多個列並將它們全部放入數組中,但我不太確定如何將該列表項鍊接到數組。
這是我走到這一步......
的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單擊功能如下(我在網上找到的)
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單元格內列出什麼,我需要能夠做的是獲取該選定項目的其他數組數據。
是video.get(3)工作?因爲你只添加了3個元素而get(index)是0。所以你正在訪問第四元素。 – JProgrammer 2012-02-27 01:33:15