2013-10-16 31 views
0

我想做一個計算器,它的一部分是實現一個東西,如果它從第一個文本區域讀取數字x,那麼第二個文本區域爲0,它會發出一條錯誤消息。以下似乎沒有工作,雖然...Java - GUI中的Netbeans - 我有一個錯誤

私人無效divideButtonActionPerformed(EVT java.awt.event.ActionEvent中){

int number1, number2; 
    int y = Integer.parseInt(this.firstInput.getText()); 
    if (y == 0) { 
     JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE); 
    } 
    try { 
     number1 = Integer.parseInt(
       this.firstInput.getText()); 


    } catch (Exception e) { 
     JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE); 
     return; 
    } 
    try { 
     number2 = Integer.parseInt(
       this.secondInput.getText()); 
    } catch (Exception e) { 
     JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE); 
     return; 
    } 

    int answer = number1/number2; 
    this.theAnswer.setText(
      "The calculated answer is: " + answer); 
}            

它只是似乎沒有顯示我想要的錯誤。有人可以幫忙嗎?

--------- ----------編輯

Woops對不起你們我只注意到它說this.firstInput而不是this.secondInput。 我完全臉對不起....

謝謝你!

+2

然後刪除它。 –

回答

1

除了您試圖從第一個字段而不是第二個字段檢查值的事實之外,您的代碼結構仍允許執行計算,相反,您應該使用if-else語句例。

int number1, number2; 
try { 
    number1 = Integer.parseInt(
      this.firstInput.getText()); 


} catch (Exception e) { 
    JOptionPane.showMessageDialog(this, "Bad first number", "Error", JOptionPane.ERROR_MESSAGE); 
    return; 
} 
try { 
    number2 = Integer.parseInt(
      this.secondInput.getText()); 
} catch (Exception e) { 
    JOptionPane.showMessageDialog(this, "Bad second number", "Error", JOptionPane.ERROR_MESSAGE); 
    return; 
} 
if (number2 == 0) { 
    JOptionPane.showMessageDialog(this, "Cannot divide by 0", "Error", JOptionPane.ERROR_MESSAGE); 
} else { 
    int answer = number1/number2; 
    this.theAnswer.setText(
      "The calculated answer is: " + answer);    
} 

}

而且,你已經做了String S的轉換,你還不如用你已經有了結果 - 或者嘗試做String比較,而不是如果你想避免對話總共...