Изменить arraylist через текстовые поля - PullRequest
1 голос
/ 20 декабря 2011

В настоящее время у меня есть класс Room и класс Hostel, который содержит rooms = new ArrayList < Room >();. У меня тогда есть BookRoomGUI класс.

Когда к массиву добавляется комната, он использует следующий конструктор:

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 и setRoomBooker в Room, но это не работает, и мне предлагают

setRoomBooker () в комнате нельзя применить к (java.lang.String)

1 Ответ

2 голосов
/ 20 декабря 2011

Убедитесь, что у вас есть следующий метод в Room:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...