作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写 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);
如果我尝试打印复选框中的文本,这是可以的,但是对话框只显示一长行一些没有任何意义的文本..
那么,有没有办法做到这一点?
提前致谢..
最佳答案
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 - 如何制作带复选框的 JDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28656824/
我是一名优秀的程序员,十分优秀!