[英]Java: JOptionPane Input
我已经为将(SI)单位转换为另一个单位的程序编写了代码。 我正在使用JOptionPane,并且正在工作。 但是我有一个问题,我必须输入8次而不是2次。
谁能提出解决方案?
import javax.swing.JOptionPane;
class Aufgabe {
// Newton in Kilopond
static double newton(){
double e = readin()[0];
double newton = e*0.10197;
return newton;
}
// Kilopond in Newton
static double kilopond(){
double f = readin()[1];
double kilopond = f/0.10197;
return kilopond;
}
// method readin
static double[] readin(){
String a = JOptionPane.showInputDialog("newton:");
String b = JOptionPane.showInputDialog("kilopond:");
double n = Double.parseDouble(a);
double k = Double.parseDouble(b);
return new double[]{n, k};
}
// Main-Methode
public static void main (String[] args) {
double a = readin()[0];
double b = readin()[1];
double c = newton();
double d = kilopond();
System.out.println(a + " N = " + c + "kp");
System.out.println(b + " kp = " + d + "N");
}
}
每次您编写readin()
,都会调用该方法,并要求用户键入两个值。 这在您的代码的四个位置中发生,总共有8个对话框。
而是只调用一次该方法。 将返回值存储在变量中,并将必要的值作为参数传递给需要它的方法:
class Aufgabe {
private static final double CONVERSION_FACTOR = 0.10197;
// Newton in Kilopond
static double newton(double e) {
double newton = e * CONVERSION_FACTOR;
return newton;
}
// Kilopond in Newton
static double kilopond(double f) {
double kilopond = f / CONVERSION_FACTOR;
return kilopond;
}
// method readin
static double[] readin() {
String a = JOptionPane.showInputDialog("newton:");
String b = JOptionPane.showInputDialog("kilopond:");
double n = Double.parseDouble(a);
double k = Double.parseDouble(b);
return new double[] { n, k };
}
// Main-Methode
public static void main(String[] args) {
double[] valuesRead = readin();
double a = valuesRead[0];
double b = valuesRead[1];
double c = newton(a);
double d = kilopond(b);
System.out.println(a + " N = " + c + "kp");
System.out.println(b + " kp = " + d + "N");
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.