我开始为我的班级创建一个Java程序。使用扫描仪工具在控制台中显示信息并不需要很长时间,所以我决定尝试让它利用JOptionPane,这样它就可以在弹出窗口中显示信息(很明显)。我可以将其设置为使用JOptionPane,但是在您在JOptionPane窗口中输入数字后,它会立即要求您在控制台中输入数字。我看到过一些问题,要求人们为他们转换他们的程序,但这不是我想要的。我只是想要一些提示,这样我就可以自己做了。
我想知道如何去掉构成它的部分,这样你就必须在控制台中输入数字,这样你就只使用JOptionPane。欢迎任何帮助。我知道程序并没有完全按照它现在的预期来做,但是一旦我得到我想要的地方,我就可以弄清楚这一部分。谢谢!
import java.util.Scanner;
import javax.swing.JOptionPane;
import javax.swing.JDialog;
public class Program4
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
int product = 0;
double product1;
double product2;
double product3;
double product4;
double product5;
int quantity;
String done = "y";
int selection;
boolean isNo;
double totalSales = 0;
while (done.equals("y"))
{
JOptionPane.showInputDialog(null,
"Enter product number: ", "Product Number ",
JOptionPane.INFORMATION_MESSAGE);
product=input.nextInt();
JOptionPane.showInputDialog(null,
"Enter how many were sold: ", "Product Quantity ",
JOptionPane.INFORMATION_MESSAGE);
quantity= input.nextInt();
JOptionPane.showMessageDialog(null,
"Total Sales $" + totalSales);
switch (product)
{
case 1: product1 = 2.98;
totalSales+=(2.98*quantity);
break;
case 2: product2 = 4.50;
totalSales+=(4.50*quantity);
break;
case 3: product3 = 9.98;
totalSales+=(9.98*quantity);
break;
case 4: product4 = 4.49;
totalSales+=(4.49*quantity);
break;
case 5: product5 = 6.87;
totalSales+=(6.87*quantity);
break;
}
selection = JOptionPane.showConfirmDialog(null,
"Any other products?" );
isNo = (selection == JOptionPane.YES_NO_OPTION);
done = input.next();
}
System.out.println(totalSales);
}
}发布于 2015-08-01 11:41:22
显然,您显示了一个对话框,然后您没有对输入做任何操作,您要求用户再次输入它。
JOptionPane.showInputDialog(null,
"Enter product number: ", "Product Number ",
JOptionPane.INFORMATION_MESSAGE);
product=input.nextInt();对showInputDialog的调用实际上返回了用户输入,但是您忽略了它。取而代之的是,调用扫描控制台的input.nextInt ()。这就是为什么会出现输入对话框,您需要在控制台中输入您的输入。
因此,您根本不应该实例化Scanner对象。只需拨打:
String inputStr = JOptionPane.showInputDialog(null, "Enter product number: ", "Product Number ",
JOptionPane.INFORMATION_MESSAGE);现在您有了一个输入字符串。但是您希望在product变量中包含一个int。因此,您可以调用:
product = Integer.parseInt (inputStr);如果你不明白,请在评论中问我!
发布于 2015-08-01 09:43:13
因此,JOptionPane.showInputDialog返回用户输入的字符串。这将取代扫描仪。使用从JOptionPane返回的字符串。
String inputValue = JOptionPane.showInputDialog("Please input a value");https://stackoverflow.com/questions/31757333
复制相似问题