我正在构建一个带有 Room
的应用程序类是抽象的 Standard
继承自 Room
的类。然后我创建了一个 Hostel
类(class)。 Hostel
内类(class)是 ArrayList<Room> rooms
可以添加到哪些房间。我在Hostel
中创建了一个方法显示所有可用房间的类,但是当我尝试在另一个类( MainGUI
)中实例化它时,没有显示任何内容。据我所知,这是因为每次单击按钮时我都会创建一个新的旅馆,但我想知道如何传递数据而不是每次都创建一个新的旅馆。以下是相关代码片段。
Hostel Class
public Hostel()
{
rooms = new ArrayList<Room>();
}
public void showAvail()
{
for (Room room : rooms)
{
if (room.available == true)
{
theString = room.getRoomData() + "\n";
//System.out.println("Available Rooms" + "\n" + theString);
JOptionPane.showMessageDialog(null,theString);
}
}
}
public void addRoom(Room theRoom)
{
rooms.add(theRoom);
}
MainGUI Class
roomsFreeB.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Hostel host = new Hostel();
host.showAvail();
}
});
如有任何帮助,我们将不胜感激
最佳答案
除非您省略了 Hostel host = new Hostel();
和 host.showAvail();
之间的代码,否则您永远不会向旅馆添加任何房间,因此有没有可用的房间(或根本没有)可显示。您需要在创建host
之后和showAvail
之前将房间添加到host
,或者创建一个Hostel
实例变量,将其填充到某处,然后然后调用 showAvail
。
关于java - 从另一个类调用与Arraylist相关的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8261582/