Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新打开正在运行的java程序_Java_Swing_Jframe - Fatal编程技术网

重新打开正在运行的java程序

重新打开正在运行的java程序,java,swing,jframe,Java,Swing,Jframe,我有一个计算器,我一直在为学校工作 不过,它不会有一个典型的计算器GUI 我有一个测试版,我使用输入框来获取输入 我想知道是否有一种方法可以让函数关闭它,然后像循环一样重新打开它 import javax.swing.JOptionPane; public class JOptionPaneCalc { public static void main(String [] args){ char o = ' '; String input = " "; double

我有一个计算器,我一直在为学校工作

不过,它不会有一个典型的计算器GUI

我有一个测试版,我使用输入框来获取输入

我想知道是否有一种方法可以让函数关闭它,然后像循环一样重新打开它

import javax.swing.JOptionPane;

public class JOptionPaneCalc {

public static void main(String [] args){

    char o = ' ';
    String input = " ";
    double num1 = 0;
    double num2 = 0;
    double result = 0;


    while (true){

    input = JOptionPane.showInputDialog("What is your operand? ");
    o = input.charAt(0); 

    if (o == '/') {
        result = num1 / num2;
        break;
    } else if (o == '*') {
        result = num1 * num2;
        break;
    } else if (o == '+') {
        result = num1 + num2;
        break;
    } else if (o == '-') {
        result = num1 - num2;
        break;
    }else if (o == 'q'){
        System.exit(0);
    }


    }

    input = JOptionPane.showInputDialog("What is your first number? ");
    num1 = Double.parseDouble(input);

    input = JOptionPane.showInputDialog("What is your second number? ");
    num2 = Double.parseDouble(input);

    if (o == '/') {
        result = num1 / num2;

    } else if (o == '*') {
        result = num1 * num2;

    } else if (o == '+') {
        result = num1 + num2;

    } else if (o == '-') {
        result = num1 - num2;

    }else if (o == 'q'){
        System.exit(0);
    }

    JOptionPane.showMessageDialog(null ,"Your answer is : " + result);


}   

}

这就是我所拥有的,希望您能帮助我

您的代码有很多问题。如果o='q',那么您的程序将永远退出

}else if (o == 'q'){
    System.exit(0);
}
阅读关于重复的文章。 如果您想让程序循环,那么至少应该这样编写:

 public static void main(String[] args) {

    char o;
    String input;
    double num1;
    double num2;
    double result=0.;

    input = JOptionPane.showInputDialog("What is your operand? ");
    o = input.charAt(0);

    while (o!='q') {
        input = JOptionPane.showInputDialog("What is your first number? ");
        num1 = Double.parseDouble(input);
        input = JOptionPane.showInputDialog("What is your second number? ");
        num2 = Double.parseDouble(input);

        if (o == '/') {
            result = num1 / num2;
        } else if (o == '*') {
            result = num1 * num2;
        } else if (o == '+') {
            result = num1 + num2;
        } else if (o == '-') {
            result = num1 - num2;
        } 
        JOptionPane.showMessageDialog(null ,"Your answer is : " + result);

        input = JOptionPane.showInputDialog("What is your operand? ");
        o = input.charAt(0);
    }

}

请记住,您的用户必须非常清醒,以避免打字错误和收到数字格式异常…

您所说的“关闭并重新打开”是什么意思?您可能需要查看这篇文章,它向您展示了如何通过编程关闭JOptionPane窗口。你可以在它关闭后重新打开它来交付你的输出:这有点难以解释。。。我想让它完成执行,但在你给出答案后按OK之前,如果你想做另一个问题,而不是仅仅关闭,就要问一个问题,然后一遍又一遍地重新运行它。我可以编写对话框,但如果用户指定“是”,我不太确定如何使其重新打开程序@Frakcoolok,也许您正试图用@NathanielPayne告诉您的
.dispose()
关闭JopOptions窗格