2013-11-14 24 views
0

//我嘗試使用GUI程序來轉換溫度。我爲用戶使用了一個JTextField來輸入一串數字,以便我可以將該字符串字段轉換爲double,然後將該double用於公式,然後將其轉換回字符串。我需要爲這兩種轉換使用兩種不同的方法。我有以下線在我的轉換方法的錯誤:溫度轉換:字符串輸入加倍

c = double.parseDouble(userInput); 
f = (c * 9/5) + 32); 

&

f = double.parseDouble(userInput); 
c = (f * 9/5) + 32); 

這裏是我的代碼:

public Temperature() { 
    super("Temperature Converter") ; 
    setSize(HEIGHT, WIDTH) ; 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) ; 

    JPanel panel1 = new JPanel() ; 
    panel1.setLayout(new GridLayout(2,5)); 

    labelC = new JLabel("Celsius:"); 
    panel1.add(labelC); 

    textFieldC = new JTextField("Enter Here") ; 
    panel1.add(textFieldC) ; 

    labelEquals = new JLabel("="); 
    panel1.add(labelEquals); 

    textFieldAnswerF = new JTextField("Answer") ; 
    panel1.add(textFieldAnswerF) ; 

    convertC2F = new JButton("C to F") ; 
    panel1.add(convertC2F) ; 

    labelF = new JLabel("Fahrenheit:"); 
    panel1.add(labelF); 

    textFieldF = new JTextField("Enter Here") ; 
    panel1.add(textFieldF) ; 

    labelEquals = new JLabel("="); 
    panel1.add(labelEquals); 

    textFieldAnswerC = new JTextField("Answer") ; 
    panel1.add(textFieldAnswerC) ; 

    convertF2C = new JButton("F to C") ; 
    panel1.add(convertF2C) ; 

    add(panel1) ; 

} // Temperature constructor 

/** 
    Method to convert Celsius to Fahrenheit 
*/ 
public double fahrenheit(double f, double c){ 
    String userInput = textFieldC.getText(); 
    c = double.parseDouble(userInput); 
    f = (c * 9/5) + 32); 
    textFieldAnswerF.setText("" + f); 
} 

/** 
    Method to convert Fahrenheit to Celsius 
*/ 
public double celsius(double c, double f){ 
    String userInput = textFieldF.getText(); 
    f = double.parseDouble(userInput); 
    c = (f * 9/5) + 32); 
    textFieldAnswerC.setText("" + c); 
} 

這裏是我的錯誤:

Temperature.java:87: error: class expected 
    c = double.parseDouble(userInput); 
      ^
Temperature.java:87: error: ';' expected 
    c = double.parseDouble(userInput); 
         ^
Temperature.java:87: error: not a statement 
    c = double.parseDouble(userInput); 
         ^
Temperature.java:87: error: ';' expected 
    c = double.parseDouble(userInput); 
            ^
Temperature.java:88: error: ';' expected 
    f = (c * 9/5) + 32); 
         ^
Temperature.java:97: error: class expected 
    f = double.parseDouble(userInput); 
      ^
Temperature.java:97: error: ';' expected 
    f = double.parseDouble(userInput); 
         ^
Temperature.java:97: error: not a statement 
    f = double.parseDouble(userInput); 
         ^
Process javac exited with code 1 
Temperature.java:97: error: ';' expected 
    f = double.parseDouble(userInput); 
            ^
Temperature.java:98: error: ';' expected 
    c = (f * 9/5) + 32); 
         ^
10 errors 
+1

什麼是錯誤信息?這真的很重要,你知道... – pobrelkey

+0

我已經把我的錯誤信息 – user2994155

回答

1

Java is is 區分大小寫。使用

f = Double.parseDouble(userInput); 

另外從第二個語句刪除多餘的括號在兩種情況下:

c = (f * 9/5) + 32; 
        ^
+0

謝謝,我已經修復了一切,但它要求返回聲明。我應該把什麼作爲回報? – user2994155

+0

在celsius中返回'c',在'farenheit'中分別返回'f' ... – Reimeus

+0

如果我返回c,是不是隻給我加倍而不是字符串?我需要返回一個字符串,以便在我的JTextField中顯示一個字符串 – user2994155

0

攝氏轉換公式爲不正確。它是c =(f - 32)*(5/9)。嘗試

c = (f - 32) * 5/9; 

與這兩個您的公式,你有一個額外的,在年底無與倫比);刪除它們。

+0

謝謝Reimus幫助過我:) – user2994155

0

double是原始類型,而Double是一個包裝類,它有方法。在你的情況下,你使用雙重和調用方法是無效的。

因此使用Double

+0

謝謝,這幫了我 – user2994155