好的所以我正在尝试使用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);
}
}
答案 0 :(得分:4)
此行a1 = scan.nextInt();
需要来自命令行的一些输入。在您不在命令行输入任何内容之前,程序会阻塞。
将图形UI元素(即JOptionPane
)与非GUI元素(即Scanner
)混合在一起并不是一个好主意。
对于命令行版本,使用System.out.println
输出给用户,使用Scanner
输入(就像你已经做的那样)。例如,对于Swing版本,请使用javax.swing.JWindow
来使用完整的GUI方法。 JOptionPane
实际上只是用于从图形上下文(如窗口或框架)弹出选项。在您的示例中,没有图形上下文。