繁体   English   中英

Java:JOptionPane输入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM