我使用Java swing庫構建計算器。除了actionEvent循環中的乘法和除法運算符外,其他所有工作都是有效的。所有其他操作員完全工作。Java計算器運算符錯誤
這是發生錯誤: 我曾嘗試在代碼
計算器的這一部分try語句:
計算器乘法錯誤:
首先你輸入號碼
然後按該假設以清除文本框操作員 - 錯誤發生在此步驟
然後就進入第二數目
然後按=按鈕輸出答案
圖片錯誤的:
if(e.equals("*"))
{
fnum = txt.getText();
logic.setTotal(fnum);
op = "*";
txt.setText(""); // error occurs here, textfield isn't cleared
JOptionPane.showMessageDialog(null, fnum); //messagebox to see if fnum contains the string from the textfield
}
if(e.equals("/"))
{
fnum = txt.getText();
op = "/";
txt.setText("");
}
動作事件循環/功能:
public void actionPerformed(ActionEvent ea)
{
else if(op.equals("*"))
{
logic.setTotal(fnum);
logic.multiplication(snum);
total1 = logic.total;
}
else if(op.equals("/"))
{
logic.setTotal(fnum);
logic.divide(snum);
total1 = logic.total;
}
txt.setText(""+total1);
}
邏輯是內部類
內部類:
public class Inner extends Calculators{
public double total;
public Inner()
{
total = 0;
}
public void setTotal(String n)
{
total = convertToNumber(n);
}
public void divide(String n)
{
total /= convertToNumber(n);
}
public void multiplication(String n)
{
total *=convertToNumber(n);
}
}
如果你感到困惑,請索要更多的代碼,因爲我不能包含所有的代碼。
Code if you want to try it out yourself
這讓我很擔心:公共類Inner擴展計算器{'。爲什麼內在擴展計算器?這表明濫用繼承權。否則,如果沒有[最小示例程序](http://stackoverflow.com/help/mcve),就很難回答你的問題。 –
內部類使用Calculator方法和變量,因爲它是Calculator的「子類」。我無法添加所有的代碼,因爲它非常廣泛。 –
你看到什麼特別的錯誤?發生錯誤時該類的代碼將會很有幫助。 – MaxZoom