是否可以在JOptionPane.showInputDialog中放入多个输入?

时间:2014-01-22 17:51:40

标签: java swing joptionpane

我想知道是否有可能在JOptionPane.showInputDialog中放入多个输入然后获取用户输入,如果用户为其中一个问题提供了错误的输入,则向他们提供错误,要求他们重新输入再次输入该特定数据。

例如,在输入中我想要问题;

  1. 必须出多少次? 1-10之间。
  2. 你喜欢1号,2号还是3号?
  3. 请说明您在餐馆停留的时间是多少小时?
  4. 我需要在稍后阶段添加更多内容。
  5. 所以不要像这样对每个问题都有一个JOptionPane.showInputDialog:

     int timeout;
    
    do {
        String timeoutinputbyuser = JOptionPane.showInputDialog("How many times have to been out? between 1-10.");
        timeout = Integer.parseInt(timeoutinputbyuser);
    
    } while (timeout < 1 || timeout > 10);
    

    我希望将所有问题都集中在一起,并在用户提出任何问题时提供合适的错误。

2 个答案:

答案 0 :(得分:6)

不,输入对话框只接受一个输入区域。

将组件放在JPanel中,并将其显示在JOptionPane.showMessageDialog(..)中。请注意,您可以拥有更好的组件:

  • 用于选择号码的JSpinner
  • {li> JRadioButton ButtonGroup中的对象,用于选择3 ..

答案 1 :(得分:1)

试试这个

JTextField field1 = new JTextField();
JTextField field2 = new JTextField();
JTextField field3 = new JTextField();
JTextField field4 = new JTextField();
JTextField field5 = new JTextField();
Object[] message = {
    "Input value 1:", field1,
    "Input value 2:", field2,
    "Input value 3:", field3,
    "Input value 4:", field4,
    "Input value 5:", field5,
};
int option = JOptionPane.showConfirmDialog(parent, message, "Enter all your values", JOptionPane.OK_CANCEL_OPTION);
if (option == JOptionPane.OK_OPTION)
{
    String value1 = field1.getText();
    String value2 = field2.getText();
    String value3 = field3.getText();
    String value4 = field4.getText();
    String value5 = field5.getText();
}