Java 第二次JOptionPane赢得';不上来

Java 第二次JOptionPane赢得';不上来,java,Java,我只是从Java和编程开始。有人能给我解释一下,为什么在我输入第一个对话框的信息后,第二个对话框不会出现 谢谢 // Java Practice import javax.swing.JOptionPane; import java.util.Scanner; public class DialogTest { public static void main(String [] args) { Scanner keyboard = new Scanner(S

我只是从Java和编程开始。有人能给我解释一下,为什么在我输入第一个对话框的信息后,第二个对话框不会出现

谢谢

// Java Practice

import javax.swing.JOptionPane;
import java.util.Scanner;

public class DialogTest 
{
    public static void main(String [] args)
    {
        Scanner keyboard = new Scanner(System.in);

        String firstname;
        String lastname;
        int age;

        JOptionPane.showInputDialog("What is " +
                                    "your first name?");
        firstname = keyboard.nextLine();

        JOptionPane.showInputDialog("What is " +
                                    "your last name?");
        lastname = keyboard.nextLine();

        JOptionPane.showInputDialog("How old are you?");
        age = keyboard.nextInt();

        JOptionPane.showMessageDialog(null, "I see, so your name is: " + firstname + lastname + " and you are" + age + " years old.");

        System.exit(0);
    }
}

JOptionPane.showInputDialog()
返回包含用户输入值的
字符串。不要使用
Scanner
类,而是将方法调用的返回值存储到变量中:

String firstname, lastname, age;

firstname = JOptionPane.showInputDialog("What is " +
                                "your first name?");

lastname = JOptionPane.showInputDialog("What is " +
                                "your last name?");

age = JOptionPane.showInputDialog("How old are you?");

JOptionPane.showMessageDialog(null, "I see, so your name is: " + firstname + lastname + " and you are" + age + " years old.");

JOptionPane.showInputDialog()
返回包含用户输入值的
字符串。不要使用
Scanner
类,而是将方法调用的返回值存储到变量中:

String firstname, lastname, age;

firstname = JOptionPane.showInputDialog("What is " +
                                "your first name?");

lastname = JOptionPane.showInputDialog("What is " +
                                "your last name?");

age = JOptionPane.showInputDialog("How old are you?");

JOptionPane.showMessageDialog(null, "I see, so your name is: " + firstname + lastname + " and you are" + age + " years old.");

您不需要同时使用
作业窗格
扫描仪
。你只需要一个(我强烈推荐
Scanner
而不是另一个)

发生的情况是:对
JOptionPane
的调用正在打开一个对话框,供用户输入值。该值由此方法调用返回,您不需要对其执行任何操作。然后,在对话框完成后,调用
keyboard.nextLine()
,它会阻止程序,直到用户在命令行窗口(或IDE,如果您正在通过该窗口运行它)中输入另一个值为止

如果您想查看两个可用选项,请尝试注释
键盘
行并设置
firstname=JOptionPane…
等等。尝试该程序后,请执行相反的操作:注释掉
JOptionPane
调用,并将其替换为
System.out.println
调用


作为一个开始通过
JOptionPane
学习输入处理的人,我相信
Scanner
是一个更好的工具。

您不需要同时使用
JOptionPane
Scanner
。你只需要一个(我强烈推荐
Scanner
而不是另一个)

发生的情况是:对
JOptionPane
的调用正在打开一个对话框,供用户输入值。该值由此方法调用返回,您不需要对其执行任何操作。然后,在对话框完成后,调用
keyboard.nextLine()
,它会阻止程序,直到用户在命令行窗口(或IDE,如果您正在通过该窗口运行它)中输入另一个值为止

如果您想查看两个可用选项,请尝试注释
键盘
行并设置
firstname=JOptionPane…
等等。尝试该程序后,请执行相反的操作:注释掉
JOptionPane
调用,并将其替换为
System.out.println
调用


作为一个开始通过
JOptionPane
学习输入处理的人,我相信
Scanner
是一个更好的工具。

我会尝试一下,并记住您的建议。谢谢你的详细回答。我会试试看,记住你的建议。谢谢你的详细回答。