Java 如何获取包含三个文本字段的JOptionPane

Java 如何获取包含三个文本字段的JOptionPane,java,swing,joptionpane,Java,Swing,Joptionpane,我想知道如何从三个输入对话框中创建messageBox 像这样: JOptionPane.showInputMessageDialog("Enter your FirstName"); JOptionPane.showInputMessageDialog("Enter your MiddleName"); JOptionPane.showInputMessageDialog("Enter your LastName"); 但是我希望一条消息有三个输入框。您不能使用JOptionPane来实现这

我想知道如何从三个输入对话框中创建messageBox

像这样:

JOptionPane.showInputMessageDialog("Enter your FirstName");
JOptionPane.showInputMessageDialog("Enter your MiddleName");
JOptionPane.showInputMessageDialog("Enter your LastName");

但是我希望一条消息有三个输入框。

您不能使用
JOptionPane
来实现这一点。创建一个
JDialog
,并向其中添加三个
JTextField
。调用
setVisible(true)
时,
JDialog
会阻止调用者,因此很容易创建一个对话框,等待用户输入后再返回。

showInputMessageDialog
及其兄弟是创建简单“标准”对话框的简单方法。对于更复杂的对话框,我非常确定您必须将
JDialog
或诸如此类的子类化。

构建一个JPanel(supose它的名称为inputPanel),其中包含三个要输入的JText字段,然后执行以下操作:

if (JOptionPane.YES_OPTION == JOptionPane.showconfirmDialog(
    parentComponent, inputPanel, "Enter your data", JOptionPane.YES_NO_OPTION) {

    // retrieve data from the JTextFields and do things

} else {

    // User close the dialog, do things... or not

}

正如Telcontar所建议的,您可以将Swing组件(如JPanel)添加到选项窗格中。因此,很容易利用按钮的自动创建,而不是通过构建自己的JDialog从头开始创建按钮


然而,有一个小问题。焦点将放在第一个按钮上,而不是面板的第一个组件上。要解决此问题,您可以尝试中提供的解决方案。

您可以在此处找到标准Java教程示例:


示例只有一个文本框,但示例足够清晰,您可以扩展它。

不,不是。这就是焦点问题。你能详细说明一下吗?