如何使用复选框制作JDialog

时间:2015-02-22 10:31:07

标签: java checkbox jdialog

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

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

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);

如果我尝试在复选框中打印文本,则表示没问题,但对话框只显示了一些没有任何意义的文本。

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

提前致谢..

1 个答案:

答案 0 :(得分:2)

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

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[]