我正在编写一个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);
如果我尝试在复选框中打印文本,则表示没问题,但对话框只显示了一些没有任何意义的文本。
那么,有没有办法如何做到这一点?
提前致谢..
答案 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[]