我想要一个显示弹出窗口的按钮,我尝试使用
JOptionPane.showMessageDialog(null,"");
但我不能把我想要的对象,如表和列表。有可能吗?
答案 0 :(得分:2)
首先仔细查看JOptionPane
JavaDocs,showMessageDialog
明确指出它接受Object
作为消息参数
其中一个不错的功能是,如果Object
为Component
,则会将其添加到对话框中。
例如:JOptionPane displaying HTML problems in Java和How do i make the output come in different columns?
答案 1 :(得分:2)
Java Docs中的文档记录很少,因为所有这些都告诉你“message”参数是一个Object,它可以是任何东西 - 但不会详细说明不同类型的可能需要特殊案件处理的物品。
据我从实验中收集到的,“消息”可以是组件的子类型 - 然后它将按原样将组件放在对话框的消息区域中,如:
JOptionPane.showMessageDialog(null, new JCheckBox("I'm a checkbox!"));
否则,它只会调用对象上的toString方法,将其转换为字符串,然后将其包装在标签中,并将其作为消息放在对话框中。
但是你也可以传入一个 Array 对象,在这种情况下,它只是将每个元素放在消息区域的一个单独的行中:
JOptionPane.showMessageDialog(null, new Object[] {
new JCheckBox("check"),
new JRadioButton("radio"),
"plain text"});
可能还有其他特殊情况,但我还没有找到它们。
也就是说,如果要显示的是Component(或JComponent)的子类,只需将其作为message参数传递即可。如果没有,您可能想要编辑您的问题以更详细地描述您遇到的任何问题,也许还提供一些示例代码。