【发布时间】:2015-07-23 05:54:26
【问题描述】:
我有一个循环来创建这样的按钮。这些按钮充当房间中的床(房间是 InternalFrame)。 addButtons 是一个 JButton 数组。
for (int i = 0; i < addButtons.length; i++) {
addButtons[i] = new JButton(" Add Bed "); // make text big
addButtons[i].addActionListener(new AddBedListener());
addButtons[i].setActionCommand("" + i);
gbc.fill = GridBagConstraints.BOTH;
room1Panel.add(addButtons1[i]);
}
我想添加一个可以创建更多房间的函数,所以我创建了一个函数
public void createRoom(int nBeds, String bName){
RoomFrame roomFrame = new RoomFrame();
JPanel panel = new JPanel();
for (int i = 0; i < nBeds; i++) {
addButtons[i] = new JButton(" Add Bed "); // make text big
addButtons[i].addActionListener(new AddBedListener());
addButtons[i].setActionCommand("" + i);
gbc.fill = GridBagConstraints.BOTH;
room4Panel.add(addButtons4[i]);
}
BackButton backButton = new BackButton("Back");
}
问题是,我不知道如何动态创建按钮数组以在我的代码中使用。代码需要知道一个房间中的按钮数组与另一个房间中的按钮数组不同,因此名称必须是唯一的。如何拥有一个动态创建房间但允许我将每个按钮作为唯一实体引用的函数?
【问题讨论】:
-
考虑您的数据与其他数据的关系。例如,每张床都包含在一个房间内,我假设它包含在其他一些结构中。这样,您可以构造您的 Action,使其至少知道需要将床添加到的房间