Java 通过文本字段修改arraylist
我现在有一个classJava 通过文本字段修改arraylist,java,swing,arraylist,Java,Swing,Arraylist,我现在有一个class房间和一个class旅馆,里面有房间=新的ArrayList()。然后我有了一个BookRoomGUI类 将房间添加到arraylist时,它将使用以下构造函数: public Room(int newRoomNo, boolean newRoomEnSuite) { roomNo = newRoomNo; roomEnSuite = newRoomEnSuite; roomBooking = "Free"; roomNights = 0;
房间
和一个class旅馆
,里面有房间=新的ArrayList()代码>。然后我有了一个BookRoomGUI
类
将房间添加到arraylist时,它将使用以下构造函数:
public Room(int newRoomNo, boolean newRoomEnSuite)
{
roomNo = newRoomNo;
roomEnSuite = newRoomEnSuite;
roomBooking = "Free";
roomNights = 0;
roomBooker = "No Booker";
}
在BookRoomGUI
类中,我有以下JTextFields:
fields.add(roomnumberJTextField);
fields.add(bookerJtextField);
fields.add(nightsJTextField);
fields.add(peoplenoJTextField);
我正在尝试在Hostel中创建一个方法,如果房间号匹配,该方法将获取这些文本字段的值并更改原始构造函数中的相应变量:
public int makeBooking(int number)
{
for (Room room : rooms)
{
if (number == room.getRoomNo())
{
room.setRoomBooker(bookRoom.booker);
}
}
}
我的问题是if语句应该包含什么?目前我使用booker=bookerJtextField.getText()
从BookRoomGUI
中的文本字段和Room
中的setRoomBooker中获取文本,但这不起作用,我收到了
无法将文件室中的setRoomBooker()应用于(java.lang.String)
确保您在房间中有以下方法:
public void setRoomBooker(String roomBooker) {
this.roomBooker = roomBooker;
}
现在,如果您查看错误消息:
无法将文件室中的setRoomBooker()应用于(java.lang.String)
您可以看到,setRoomBooker()
方法当前未定义为接受类型为java.lang.String
(或任何参数)的参数
因此,您需要更改该方法的定义,以便能够执行以下操作:
room.setRoomBooker(bookRoom.booker); //<-- You are passing it an argument of type String
room.setRoomBooker(bookRoom.booker)//最好将房间存储在number->Room
地图而不是列表中。确保在Room
类中有setRoomBooker(String)
方法。这是否意味着我也需要更改getRoomNumber方法?不。它与getRoomNumber方法无关。您确定您的Room
类具有上述方法吗?请后退一步,尝试在没有GUI启动的情况下修改arraylist,但您的修复仍然有效,谢谢。