我目前遇到这种情况,我需要为我的应用程序的用户提供一个对话框,其中包含多个可供选择的选项。 例子:与JOptionPane.showInputDialog一起使用ArrayList
Object[] possibilities = {"ham", "spam", "yam"};
String s = (String)JOptionPane.showInputDialog(
frame,
"Complete the sentence:\n"
+ "\"Green eggs and...\"",
"Customized Dialog",
JOptionPane.PLAIN_MESSAGE,
icon,
possibilities,
"ham");
看来,JOptionPane.showInputDialog可以做到这一点。不过,它似乎只能使用对象数组来选择,但在我的情况下,列表不是静态的,所以我不能定义数组,因为我有一个具有可变大小的ArrayList。第二点是当我调用它时它不会给我选定的索引,但我需要这样做,因为我在后台有另一个复杂列表,它包含由所选选项的索引定义的值。 是否有可能将动态列表推送到该对话框,或者是否有其他更优雅灵活的方式来执行我所需要的操作?
非常感谢。
用JComboBox构建自己的JDialog。这样,您可以使用ComboBoxModel控制JComboBox。 – 2013-03-12 14:16:45
感谢您的回复,我也正在考虑使用JFrame或类似的东西,但我不知道我可以用这种方式自定义JDialog。因此,使用JComboBox,我将能够提供动态元素列表? – vm370 2013-03-12 14:22:12
是的。我建议使用ComboBoxModel。 DefaultComboBoxModel可能会工作。 – 2013-03-12 14:25:17