首页 文章

JOptionPane找不到符号

提问于
浏览
0

我正在尝试使用JOptionPane创建一个简单的计算器 . 我遇到了编译错误 .

import javax.swing.JOptionPane; 

public class Calculator { 
  public static void main ( String args[] ) {


     double n1 = Double.parseDouble(JOptionPane.showInputDialog(" Enter first number: "));
     double n2 = Double.parseDouble(JOptionPane.showInputDialog(" Enter second number: "));
     String x = JOptionPane.showInputDialog("Enter operator: ");
     double result;

     if (x == "+"){
         result = (n1 + n2);
           JOptionPane.showMessageDialog(n1, "+", n2,"=", result); 
           }

        else if (x == "-"){
         result = (n1 - n2); 
           JOptionPane.showMessageDialog(n1,"-", n2,"=", result); 
           }


        else if (x == "/"){
            result = (n1 / n2);
            JOptionPane.showMessageDialog(n1,"/", n2,"=", result); }
        else if (n2 == 0){
                JOptionPane.showMessageDialog(null, "Cannot divide by 0"); }


        else if (x == "*"){
            result = (n1 * n2); 
            JOptionPane.showMessageDialog(n1,"*", n2,"=", result); }


        else if (x == "%"){
               result = (n1 % n2);
               JOptionPane.showMessageDialog(n1,"%", n2,"=",(n1%n2)); }
  }
}

我的代码会出现这些编译错误:

找到5个错误:文件:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java [line:14]错误:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator . java:14:找不到符号符号:方法showMessageDialog(double,java.lang.String,double,java.lang.String,double)location:class javax.swing.JOptionPane文件:/ Users / gcaruso / Documents / CISS 110 /模块3 /模块4 / Calculator.java [line:19]错误:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java:19:找不到符号符号:方法showMessageDialog(double,java . lang.String,double,java.lang.String,double)location:class javax.swing.JOptionPane文件:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java [line:25]错误: / Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java:25:找不到符号符号:方法showMessageDialog(double,java.lang.String,double,java.lang.String,double)location: class javax.swing.JOptionPane文件:/ Users / gcaruso / Documents / CISS 110 / Modul e 3 / Module 4 / Calculator.java [line:32]错误:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java:32:找不到符号符号:方法showMessageDialog(double,java . lang.String,double,java.lang.String,double)location:class javax.swing.JOptionPane文件:/ Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java [line:37]错误: / Users / gcaruso / Documents / CISS 110 / Module 3 / Module 4 / Calculator.java:37:找不到符号符号:方法showMessageDialog(double,java.lang.String,double,java.lang.String,double)location: class javax.swing.JOptionPane

2 回答

  • 2

    我完成了它,所以整个工作:

    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    
    public class Calculator extends JPanel {
        public static void main(String args[]) {
    
            JFrame f = new JFrame();
    
            double n1 = Double.parseDouble(JOptionPane
                    .showInputDialog(" Enter first number: "));
            double n2 = Double.parseDouble(JOptionPane
                    .showInputDialog(" Enter second number: "));
            String x = JOptionPane.showInputDialog("Enter operator: ");
            double result;
    
            if (x.equals("+")) {
                result = (n1 + n2);
                JOptionPane.showMessageDialog(f, n1 + "+" + n2 + "=" + result);
                System.out.println(x);
            }
    
            else if (x.equals("-")) {
                result = (n1 - n2);
                JOptionPane.showMessageDialog(f, n1 + "-" + n2 + "=" + result);
                System.out.println(x);
            }
    
            else if (x.equals("/")) {
                if (n2 == 0) {
                    JOptionPane.showMessageDialog(null, "Cannot divide by 0");
                }else{
                result = (n1 / n2);
                JOptionPane.showMessageDialog(f, n1 + "/" + n2 + "=" + result);
                System.out.println(x);
                }
            }
    
            else if (x.equals("*")) {
                result = (n1 * n2);
                JOptionPane.showMessageDialog(f, n1 + "*" + n2 + "=" + result);
            }
    
            else if (x.equals("%")) {
                result = (n1 % n2);
                JOptionPane.showMessageDialog(f, n1 + "%" + n2 + "=" + (n1 % n2));
            }
        }
    }
    

    “==”与“.equals”不同 -

    .equals比较两个对象的值

    ==比较它们是否是java~中的同一个对象

  • 0

    所以我觉得你做的方法showMessageDialog错了:

    JOptionPane.showMessageDialog(n1, "+", n2,"=", result);
    

    试试这个:

    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    
    public class Calculator extends JPanel {
        public static void main(String args[]) {
    
            JFrame f = new JFrame();
    
            double n1 = Double.parseDouble(JOptionPane
                    .showInputDialog(" Enter first number: "));
            double n2 = Double.parseDouble(JOptionPane
                    .showInputDialog(" Enter second number: "));
            String x = JOptionPane.showInputDialog("Enter operator: ");
            double result;
    
            if (x == "+") {
                result = (n1 + n2);
                JOptionPane.showMessageDialog(f, n1 + "+" + n2 + "=" + result);
            }
    
            else if (x == "-") {
                result = (n1 - n2);
                JOptionPane.showMessageDialog(f, n1 + "-" + n2 + "=" + result);
            }
    
            else if (x == "/") {
                result = (n1 / n2);
                JOptionPane.showMessageDialog(f, n1 + "/" + n2 + "=" + result);
            } else if (n2 == 0) {
                JOptionPane.showMessageDialog(null, "Cannot divide by 0");
            }
    
            else if (x == "*") {
                result = (n1 * n2);
                JOptionPane.showMessageDialog(f, n1 + "*" + n2 + "=" + result);
            }
    
            else if (x == "%") {
                result = (n1 % n2);
                JOptionPane.showMessageDialog(f, n1 + "%" + n2 + "=" + (n1 % n2));
            }
        }
    }
    

相关问题