![](/img/trans.png)
[英]Cannot assign my DefaultListModel to my JList in Java NetBeans
[英]Why is my DefaultListModel not showing up on my JList?
我有以下方法。
DefaultListModel getModelForCabin(Cabin cabin) {
List<Camper> listAdded= new ArrayList<Camper>(getOrCreateGroup(cabin));
DefaultListModel<Camper> dfm= new DefaultListModel<Camper>();
for(Camper c: listAdded){
if(!dfm.contains(c)){
dfm.addElement(c);
}
}
//System.out.println(listAdded);
//System.out.println(dfm);
return dfm;
}
然后,我像這樣在JList中設置此方法...
JList list = new JList(getModelForCabin((Cabin)comboBox.getSelectedItem()));
scrollPane_1.setViewportView(list);
在該方法中,如果我按系統打印行中所示打印dfm和listAdded,則會顯示兩者。
如果我輸入這個...
System.out.println(getModelForCabin((Cabin)comboBox.getSelectedItem());
它也打印出模型。
它不會做的是將模型添加到JList中。 我嘗試過更改代碼,刪除JList並制作一個新的代碼,然后重新排列代碼。
不管我做什么,都行不通。
因此,我的列表打印正常,我的DefaultListModel打印良好,我的打印Cabin和Campers的HashMap工作正常,但是JList將不會打印模型。
添加:
JScrollPane scrollPane_1 = new JScrollPane();
scrollPane_1.setBounds(361, 205, 296, 339);
getContentPane().add(scrollPane_1);
list = new JList(getModelForCabin((Cabin)comboBox.getSelectedItem()));
scrollPane_1.setViewportView(list);
我發現問題是因為我沒有設置模型。 如果模型是本地DefaultListModel,則必須使用setModel方法在主類中對其進行設置。
我需要引用JList,然后像這樣執行setModel。
list.setModel(getModelForCabin((Cabin)comboBox.getSelectedItem()));
其中list是JList的變量,而getModelForCabin(Cabin cab)是返回DefaultListModel的方法。
它已添加到“添加”按鈕的動作偵聽器以及打開類時創建的刷新按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.