Java 通过文本字段修改arraylist

Java 通过文本字段修改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
房间
和一个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,但您的修复仍然有效,谢谢。