[英]Updating JList by pressing button
首先,我將介紹我想做的事情。 這是大學的一項工作,我們正在使用JAVA制作酒店預訂系統。 為了直截了當,我只需要按下按鈕就可以更新JList。
listModel = new DefaultListModel<Hotel>();
bookingList = new JList(listModel);
class MouseAdapterMod extends MouseAdapter {
public void mousePressed(MouseEvent e) {
if(e.getSource() == searchButton){
for(lists.getRoomsList() p : lists.getRoomsList())
{
listModel.addElement(p);
}
bookingList.setModel(listModel);
}
在這個GUI類中,我有Hotel類的實例變量(列表),在Hotel類中有方法
public ArrayList<Rooms> getRoomsList()
{
return roomsList.getListRooms();
}
public ArrayList<Suite> getSuitesList()
{
return roomsList.getListSuites();
}
這將返回Room類對象的整個ArrayList以及Suite類的ArrayList。 問題是當我按下按鈕時如何顯示整個房間的ArrayList,換句話說如何通過按下按鈕來更新由對象組成的JList? 我希望我能解釋清楚。
您的for-each循環是錯誤的。 試試看,看看:
public void mousePressed(MouseEvent e) {
if(e.getSource().equals(searchButton)){
ArrayList<Rooms> rooms = lists.getRoomsList();
for(Rooms r : rooms) {
listModel.addElement(r);
}
bookingList.setModel(listModel);
}
}
不過,這對我來說仍然有些混亂。 一種更合適的方法是在searchButton
上設置事件處理程序,以在單擊searchButton
時填充JList
。
此外,有Rooms
和Suites
子類Hotel
? 如果沒有,則必須創建這樣的listModel
(用於房間):
listModel = new DefaultListModel<Rooms>();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.