如何制作带复选框的 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);
我正在写一个 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);