【问题标题】:Reopening a java program that is running重新打开正在运行的 java 程序
【发布时间】:2014-04-08 16:59:20
【问题描述】:

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

虽然它不会有一个典型的计算器 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);


}   

}

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

【问题讨论】:

  • “关闭再重新打开”是什么意思?
  • 您可能想查看这篇文章,它向您展示了如何以编程方式关闭 JOptionPane 窗口。然后,您可以在它关闭后重新打开它以提供您的输出:stackoverflow.com/questions/18105598/…
  • 这有点难以解释......我希望它完成执行它,但是在它给出答案之后你按下 OK 之前,如果你想做另一个问题而不是问一个问题而不仅仅是关闭并且必须一遍又一遍地重新运行它。我可以编写对话框和所有内容,但如果用户指定是,我不太确定如何让它重新打开程序。 @Frakcool
  • 好吧,也许你正试图用@NathanielPayne 告诉你的.dispose() 关闭JOptionPane

标签: java swing jframe


【解决方案1】:

您的代码存在很多问题。如果 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);
    }

}

请记住,您的用户必须非常清醒,以避免拼写错误和收到 NumberFormatException...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-14
    相关资源
    最近更新 更多