如何制作带复选框的 JDialog

how to make JDialog with checkboxes

我正在写一个 Java 程序,我 运行 遇到了一个问题。我有一个 ArrayList<JCheckBox>,我想用这些复选框显示一些对话框 window,所以我可以选择其中的一些,我想要另一个 ArrayList<> 所选对象作为关闭后的结果对话。我想我可以通过向这些复选框添加 ActionListener 来获得结果,但我不知道如何将 ArrayList<JCheckBox> 传递给对话框 window..

到目前为止我试过这样的事情:

ArrayList<JCheckBox> al = new ArrayList<JCheckBox>();
for (MyClass mc : sr.getFields().values())
{
    JCheckBox box = new JCheckBox(mc.getType());
    al.add(box);
}
JOptionPane.showConfirmDialog(null, al);

如果我尝试打印复选框中的文本,没问题,但对话框只显示一长行没有任何意义的文本..

那么,有没有办法做到这一点?

提前致谢..

showConfirmDialog 方法必须解释消息对象才能正确呈现它,但它不知道如何解释 ArrayList,您必须将所有元素添加到 JPanel 例如:

JPanel al = new JPanel();
for (MyClass mc : sr.getFields().values()){
    JCheckBox box = new JCheckBox(mc.getType());
    al.add(box);
}
JOptionPane.showConfirmDialog(null, al);

Object[] 例如:

ArrayList<JCheckBox> al = new ArrayList<JCheckBox>();
for (MyClass mc : sr.getFields().values()){
    JCheckBox box = new JCheckBox(mc.getType());
    al.add(box);
}
Object[] obj = (Object[]) al.toArray(new Object[al.size()]);
JOptionPane.showConfirmDialog(ui, obj);