gpt4 book ai didi

java - 创建动态按钮数组

转载 作者:行者123 更新时间:2023-11-29 03:07:09 24 4
gpt4 key购买 nike

我有一个循环来创建这样的按钮。这些按钮充当房间中的床(房间是一个 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");
}

问题是,我不知道如何动态创建一个按钮数组以供在我的代码中使用。代码需要知道一个房间中的按钮阵列与另一个房间中的按钮阵列不同,因此名称必须是唯一的。我如何拥有动态创建房间但允许我将每个按钮作为唯一实体引用的功能?

最佳答案

The code needs to know that an array of buttons in one room is different to an array of buttons in another room, hence the name must be unique.

名称远没有许多编码新手认为的那么重要,变量名当然更是如此。更重要的是引用以及如何访问引用。

最好的解决方案是使用 MVC 或模型- View -控制程序结构来帮助组织代码。但如果这太复杂,那么房间的 View 表示,这里的 RoomFrame 将保存这个列表,并且将有一个 addBed(Bed bed) 方法。最重要的是,Room 或 RoomFrame 类应该包含一个包含自己的 Bed 对象的 ArrayList,例如:

List<Bed> bedList = new ArrayList<>(),

因此 Room 本身会跟踪自己的床,并准备好引用它拥有的所有床实例。底线:让您的对象变得智能,以便它们知道自己的状态并可以根据该状态改变它们的行为。

关于java - 创建动态按钮数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574293/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com