gpt4 book ai didi

java - 如何为 ArrayList 的元素创建 JCheckBox

转载 作者:行者123 更新时间:2023-12-02 04:59:54 26 4
gpt4 key购买 nike

我有一个由用户填充的数组。那么这个数组的每个元素都将是一个复选框。例如,如果数组有 6 个元素,则必须创建 6 个复选框。

这就是我尝试循环遍历数组并创建复选框的方法,但它只覆盖一个复选框。

public static void main(String[] args) {    
JFrame frame = new JFrame("Options");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);

ArrayList<String> myArrayList = new ArrayList<String>();
myArrayList.add("checkbox 1");
myArrayList.add("checkbox 2");
myArrayList.add("checkbox 3");
myArrayList.add("checkbox 4");
myArrayList.add("checkbox 5");

for(String element : myArrayList){
JCheckBox box = new JCheckBox(element);
frame.add(box);
}

frame.setVisible(true);
}

重要的是我稍后可以访问每个复选框,因此我可以指定例如如果选择了 checkbox2,则执行此操作

那么有没有办法让这些复选框根据ArrayList的大小动态变化呢?

最佳答案

每次向 JFrame 添加新内容时,它都会删除其中先前的内容。

您需要创建一个 JPanel 或其他一些容器来保存 JCheckBox,然后将其放入 JFrame 中。

此外,您还可以跟踪列表中的复选框。

例如:

JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(BoxLayout.Y_AXIS, panel));
List<JCheckBox> checkboxes = new ArrayList<>();

for(String element : myArrayList) {
JCheckBox box = new JCheckBox(element);
checkboxes.add(box);
panel.add(box);
}

frame.add(panel);

关于java - 如何为 ArrayList 的元素创建 JCheckBox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28389756/

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