我的Java中的JOptionPane不会继续到下一个窗口?

时间:2015-11-13 17:45:42

标签: java joptionpane

好的所以我正在尝试使用JOptionPane方法创建一个非常简单的java计算器,这主要只是一个实验,但回到了问题。为什么当我的第一个JOptionPane窗口出现时,它不会继续到应该说“输入操作员”的第二个窗口?任何帮助赞赏!谢谢!

import javax.swing.JOptionPane;
import java.util.*;
public class Calculator {
    double a1, a2;
    char b1;
    public void Cal() {
        Scanner scan = new Scanner(System.in);
        Scanner in = new Scanner(System.in);
        JOptionPane.showInputDialog("Enter Ur First Number ");
        a1 = scan.nextInt();
        JOptionPane.showInputDialog("Enter an Operator");
        b1 = in.next().charAt(0);
        if (b1 == '-' || b1 == '+' || b1 == '*' || b1 == '/') {

        }
        else  {
            System.out.println("Invalid Input");
        }
        JOptionPane.showInputDialog("Enter Ur Second Number");
        a2 = scan.nextInt();
        JOptionPane.showMessageDialog(null, a1 + b1 + a2);
    }

 }

1 个答案:

答案 0 :(得分:4)

此行a1 = scan.nextInt();需要来自命令行的一些输入。在您不在命令行输入任何内容之前,程序会阻塞。

将图形UI元素(即JOptionPane)与非GUI元素(即Scanner)混合在一起并不是一个好主意。

对于命令行版本,使用System.out.println输出给用户,使用Scanner输入(就像你已经做的那样)。例如,对于Swing版本,请使用javax.swing.JWindow来使用完整的GUI方法。 JOptionPane实际上只是用于从图形上下文(如窗口或框架)弹出选项。在您的示例中,没有图形上下文。