我刚刚开始使用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);
}
}
答案 0 :(得分:2)
JOptionPane.showInputDialog()
返回包含用户输入值的String
。而不是使用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.");
答案 1 :(得分:0)
您不需要JOptionPane
和Scanner
。你只需要一个(我强烈推荐Scanner
而不是另一个)。
这是怎么回事:对JOptionPane
的调用是打开一个对话框供您的用户输入值。该方法调用返回该值,您不执行任何操作。然后在对话框完成后,调用阻止程序的keyboard.nextLine()
,直到用户将另一个值输入命令行窗口 (或者你的IDE,如果你正在运行它。)
如果您希望同时看到这两个选项,请尝试注释掉keyboard
行并设置firstname = JOptionPane...
,依此类推。一旦您尝试了该计划,请执行相反的操作:注释掉JOptionPane
来电并将其替换为System.out.println
来电。
作为开始通过JOptionPane
学习输入处理的人,我相信Scanner
是一个更好的实用工具。