2014-10-08 64 views
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錯誤發現: 文件:/用戶/ gcaruso /文檔/ CISS 110 /模塊3 /模塊4/Calculator.java [行:14] Error:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4/Calculator.java:14:找不到符號 symbol:method showMessageDialog(double,java.lang.String,double,java.lang.String, double) location:class javax.swing.JOptionPane File:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4/Calculator.java [line:19] 錯誤:/ Users/g caruso/Documents/CISS 110/Module 3/Module 4/Calculator.java:19:找不到符號 symbol:method showMessageDialog(double,java.lang.String,double,java.lang.String,double) location:class javax.swing.JOptionPane File:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4/Calculator.java [line:25] Error:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4 /Calculator.java:25:找不到符號 symbol:method showMessageDialog(double,java.lang.String,double,java.lang.String,double) location:class javax.swing.JOptionPane File:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4/Calculator.java [line:32] Error:/ Users/gcaruso/Documents/CISS 110/Module 3/Module 4/Calculator.java:32:找不到符號 sym bol:method showMessageDialog(double,java.lang.String,double,java.lang.String,double) location:class javax.swing.JOptionPane File:/ 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:找不到符號 symbol:method showMessageDialog(double,java.lang.String ,double,java.lang.String,double) 位置:class javax.swing.JOptionPane

我想用JOptionPane創建一個簡單的計算器。在我的第七個小時工作完成之後,我懇求有人幫助我弄清楚這一點。請,請,請。

回答

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

我不能感謝你足夠! – 2014-10-08 16:02:35

+0

請注意,您不需要提供'JFrame f'。你可以使用'null',對話框可以正常工作。第一個論點是針對家長IIRC。如果某件事沒有父母,就不需要給它一個。 – Compass 2014-10-08 16:03:10

+0

哦,我不知道 – 2014-10-08 16:04:10

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)); 
     } 
    } 
} 
+0

謝謝!現在正在編譯,但仍然沒有顯示輸出。 – 2014-10-08 15:59:30

+0

新回答^^ :) – 2014-10-08 16:01:50

+0

作爲一個方面的說明,你可以使用開關/大小寫字符串作爲java 7。 – IdusOrtus 2014-10-18 00:31:10