【发布时间】:2014-10-03 05:00:54
【问题描述】:
我似乎无法让 ArrayList 进入组合框。组合框应该显示可用的房间号。
目前,当它编译组合框时显示我认为是某种异常。组合框显示带有“HotelReservation.entity.Rooms@24084dad, HotelReservation.entity.Rooms@716ab511..etc”的行
我正在为我的应用程序实现 3 层架构。我在这里做错了什么?
实体 - Rooms.java
public ArrayList<Rooms> getRoomNums() {
// TODO Auto-generated method stub
ArrayList<Rooms> rNumList = new ArrayList<Rooms>();
DBController db = new DBController();
String dbQuery="SELECT DISTINCT roomNo FROM Rooms "
+ "WHERE hotelNo='" + CheckAvailability.hotNo + "' AND type='" + AgentDetails.typeDin + "' AND roomNo NOT IN (SELECT roomNo FROM booking WHERE departureDate >= '"
+ CheckAvailability.depDate + "' AND arrivalDate <= '" + CheckAvailability.arrDate + "');";
try{
db.getConnection();
ResultSet rs = db.readRequest(dbQuery);
while(rs.next())
{
Rooms r = new Rooms(rs.getString("roomNo"));
rNumList.add(r);
}
}
catch(Exception e){
e.printStackTrace();
}
db.terminate();
return rNumList;
}
控制器类 - AdmininistrateController.java
public ArrayList processGetRoomNum() {
// TODO Auto-generated method stub
Rooms s = new Rooms();
ArrayList<Rooms> rNumList = new ArrayList<Rooms>();
rNumList = s.getRoomNums();
return rNumList;
}
UI - GuestDetails.java
comboBox1 = new JComboBox();
comboBox1.setFont(new Font("Tahoma", Font.PLAIN, 15));
comboBox1.setBounds(61, 9, 411, 25);
ucc = new AdministrateController();
ArrayList<Rooms>rNumList = new ArrayList<Rooms>();
rNumList = ucc.processGetRoomNum();
displayRoomNo(rNumList);
private void displayRoomNo(ArrayList<Rooms> rNumList) {
// TODO Auto-generated method stub
//I have tried two different ways but still didn't work
//#1 For loop
for (int i = 0; i < rNumList.size(); i++){
comboBox1.addItem(rNumList.get(i));
}
//#2Convert to array & set model
DefaultComboBoxModel model = new DefaultComboBoxModel(rNumList.toArray(new
Rooms[rNumList.size()]));
comboBox1.setModel(model);
【问题讨论】:
标签: java eclipse swing arraylist jcombobox