Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JOptionPane从链接列表中预定义的选择_Java_Swing_Linked List_Joptionpane - Fatal编程技术网

Java JOptionPane从链接列表中预定义的选择

Java JOptionPane从链接列表中预定义的选择,java,swing,linked-list,joptionpane,Java,Swing,Linked List,Joptionpane,我目前正在从事一个项目,在该项目中,我必须输入并验证链接列表中的用户答案。列表中有6到8个可能的答案。我正在考虑使用带有预定义选择的JOptionPane,但我不太确定如何从链接列表中执行此操作,如果我可以的话 我正在寻求一些帮助,我将如何做到这一点,甚至一些其他的建议,我可以做什么?关键是我需要能够验证用户的输入,这就是为什么我希望从预定义的选择中进行验证 这正是我所看到的 正如我所说,我愿意接受任何关于我如何能够做到这一点的其他建议,因此欢迎任何建议 :)您发布的示例似乎完全正确。然而,这

我目前正在从事一个项目,在该项目中,我必须输入并验证链接列表中的用户答案。列表中有6到8个可能的答案。我正在考虑使用带有预定义选择的JOptionPane,但我不太确定如何从链接列表中执行此操作,如果我可以的话

我正在寻求一些帮助,我将如何做到这一点,甚至一些其他的建议,我可以做什么?关键是我需要能够验证用户的输入,这就是为什么我希望从预定义的选择中进行验证

这正是我所看到的

正如我所说,我愿意接受任何关于我如何能够做到这一点的其他建议,因此欢迎任何建议


:)

您发布的示例似乎完全正确。然而,这并不能解释任何事情

首先,核心方法是

public static Object showInputDialog(Component parentComponent,
                                 Object message,
                                 String title,
                                 int messageType,
                                 Icon icon,
                                 Object[] selectionValues,
                                 Object initialSelectionValue)
                             throws HeadlessException
您可以阅读API

因此,您基本上要在这里填写的是
消息
标题
消息类型
选择值
,可能还有
初始选择值

首先,
消息
标题
本身做了很多解释,所以我不想麻烦这些

messageType
参数表示消息对用户的显示方式。例如,如果在此处使用
JOptionPane.ERROR\u MESSAGE
,则会出现该消息,因此系统可能会播放错误蜂鸣音

可能的选项都作为常量包含在
JOptionPane

  • 错误信息
  • 信息和信息
  • 警告信息
  • 问题(留言)
  • 平信
现在,关键参数是
selectionValues
,它属于
Object[]
类型。API说它是“一个对象数组,提供了可能的选择”,因此基本上就是您当前列表中的内容。您只需将其转换为
数组
(在下面的示例中,我使用了一个临时副本,对于6-8个值来说完全可以)

最后但并非最不重要的一点是,
initialSelectionValue
允许您指定最初应选择的值

因此,你所要做的就是

public Foo select(List<Foo> options, String message, String title, Foo initiallySelected) {
    return (Foo)JOptionPane.showInputDialog(
        null, // we don't have a parent component in this example
        message, // the message that will appear above the selection
        title, // the title that will appear in the window's caption
        JOptionPane.QUESTION_MESSAGE, // style is question
        null, // we don't show an Icon here, it's just a gimmick
        list.toArray(), // the values which can be selected from
        initiallySelected // the initially selected value
    );
}
public Foo select(列表选项、字符串消息、字符串标题、Foo initiallySelected){
return(Foo)JOptionPane.showInputDialog(
null,//本例中没有父组件
message,//将显示在所选内容上方的消息
title,//将出现在窗口标题中的标题
JOptionPane.QUESTION\u消息,//样式为QUESTION
null,//我们这里不显示图标,这只是一个噱头
list.toArray(),//可以从中选择的值
initiallySelected//初始选择的值
);
}

感谢您的反馈:)