Java JOptionPane.showInputDialog只显示一次
在一节编程课上,我们被要求制作一个程序,告诉用户他们以前的英镑先令和便士现在的英镑值多少。我使用控制台作为程序的输入和输出完全可以实现这一点,但现在,当我尝试使用Java JOptionPane.showInputDialog只显示一次,java,swing,joptionpane,Java,Swing,Joptionpane,在一节编程课上,我们被要求制作一个程序,告诉用户他们以前的英镑先令和便士现在的英镑值多少。我使用控制台作为程序的输入和输出完全可以实现这一点,但现在,当我尝试使用JOptionPane来实现这一点时,向用户显示小的弹出框是行不通的。当我运行任务时,只显示第一个弹出窗口,程序结束时没有任何形式的错误消息。我假设这是语法上的一个简单错误,但我无法发现它 如果有人发现错误,请帮我解决,谢谢:)您使用JOptionPane和扫描仪的方式导致了问题 import java.util.Scanner; im
JOptionPane
来实现这一点时,向用户显示小的弹出框是行不通的。当我运行任务时,只显示第一个弹出窗口,程序结束时没有任何形式的错误消息。我假设这是语法上的一个简单错误,但我无法发现它
如果有人发现错误,请帮我解决,谢谢:)您使用
JOptionPane
和扫描仪的方式导致了问题
import java.util.Scanner;
import javax.swing.JOptionPane;
public class moneyRate {
public static void main(String[] args) {
//Get Inputs
Scanner input = new Scanner(System.in);
JOptionPane.showInputDialog("How many old pounds? ");
double oldPounds = input.nextDouble();
JOptionPane.showInputDialog("How many old shillings? ");
double oldShillings = input.nextDouble();
JOptionPane.showInputDialog("How many old pennies? ");
double oldPennies = input.nextDouble();
input.close();
//New Pounds calc
double newPounds = ((oldPounds*160.80) + (oldShillings*8.04) + (oldPennies*0.67));
System.out.print("Your old pounds shillings and pennies are equal to £4"
+ "" + newPounds + ".");
}
}
现在,您的程序将保留在那里,以等待来自控制台的输入。您需要按如下方式更改代码
JOptionPane.showInputDialog("How many old pounds? "); // display this
double oldPounds = input.nextDouble(); // then it wait for scanner input
你在那里干什么?显示对话框后,从命令行读取。您应该从inputDialog中获取值。Ruchira答案已完成。。请注意
JOptionPane.showInputDialog()的
返回一个字符串
这就是为什么您需要他在代码中输入的Double.parseDouble转换。为什么不从joption窗格中获取输入
double oldPounds = Double.parseDouble(JOptionPane.showInputDialog("How many old pounds? "));
double oldShillings = Double.parseDouble(JOptionPane.showInputDialog("How many old shillings? "));
double oldPennies = Double.parseDouble(JOptionPane.showInputDialog("How many old pennies? "));
double newPounds = ((oldPounds*160.80) + (oldShillings*8.04) + (oldPennies*0.67));
System.out.print("Your old pounds shillings and pennies are equal to £4"
+ "" + newPounds + ".");