2011-12-20 13 views
1

私は現在クラスRoomとクラスHostelを持っています。rooms = new ArrayList <Room>();を保持しています。私はBookRoomGUIクラスを持っています。テキストフィールドを使用してarraylistを変更します

部屋をArrayListに追加されると、それは次のコンストラクタ使用しています:私は内のメソッドを作成しようとしています

fields.add(roomnumberJTextField); 
    fields.add(bookerJtextField); 
    fields.add(nightsJTextField); 
    fields.add(peoplenoJTextField); 

:私は、次のJTextFieldを持ってBookRoomGUIクラスで

public Room(int newRoomNo, boolean newRoomEnSuite) 
{ 
    roomNo = newRoomNo; 
    roomEnSuite = newRoomEnSuite; 
    roomBooking = "Free"; 
    roomNights = 0; 
    roomBooker = "No Booker"; 
} 

Hostelこれらのテキストフィールドの値を受け取り、ルーム番号が一致する場合は元のコンストラクタ内の対応する変数を変更します。

public int makeBooking(int number) 
{ 
    for (Room room : rooms) 
    { 
    if (number == room.getRoomNo()) 
    { 
     room.setRoomBooker(bookRoom.booker); 
    } 
    } 
} 

私の質問はif文にどういうことでしょうか?現在(java.lang.Stringで)私はRoomBookRoomGUIとsetRoomBookerでテキストフィールドからテキストを取るためにbooker = bookerJtextField.getText();を使用しますが、これは動作しませんし、私はに適用することができない部屋で

setRoomBooker()を提示しています

+0

'番号でお部屋を格納する方が良いだろう - の代わりに> Room'マップリストの。 'Room'クラスに' setRoomBooker(String) 'メソッドがあることを確認してください。 – khachik

答えて

2

あなたはRoomで次のような方法があることを確認してください:あなたは、エラーmessegeを見れば、今

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 
+0

これは私もgetRoomNumberメソッドを変更する必要がありますか? –

+0

いいえ、getRoomNumberメソッドと何も関係ありません。 'Room'クラスに上記のメソッドがあることは確かですか? –

+0

が一歩踏み出し、GUIを使わずにarraylistを修正しようとしたところ、あなたの修正はうまくいった。 –

関連する問題