プログラムに問題があり、間違った結果が表示されています.1桁の計算を実行しようとするとエラーが発生します。以下に掲示されたプログラムは、どんな助けもありがとう。Java計算機で間違った結果が表示される
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calc extends JFrame{
public static void main(String[] args){
Calc myFrame = new Calc();
myFrame.pack();
myFrame.setTitle("Calculator");
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setLocationRelativeTo(null);
myFrame.setVisible(true);
}//main
private JTextField jtfNum1, jtfNum2, jtfResult;
private JButton jbtAdd, jbtSub, jbtMul, jbtDiv, jbt1, jbt2, jbt3, jbt4, jbt5, jbt6, jbt7, jbt8, jbt9, jbt0, jbtDec, jbtC, jbtE, jbtClear;
double number1 = 0;
double number2 = 0;
double result = 0;
String display = "";
String display1 ="";
char oper = ('A');
public Calc(){
JPanel p1 = new JPanel();
p1.setLayout(new GridLayout(5,4));
p1.add(jbt1 = new JButton("1"));
p1.add(jbt2 = new JButton("2"));
p1.add(jbt3 = new JButton("3"));
p1.add(jbtAdd = new JButton("+"));
p1.add(jbt4 = new JButton("4"));
p1.add(jbt5 = new JButton("5"));
p1.add(jbt6 = new JButton("6"));
p1.add(jbtSub = new JButton("-"));
p1.add(jbt7 = new JButton("7"));
p1.add(jbt8 = new JButton("8"));
p1.add(jbt9 = new JButton("9"));
p1.add(jbtMul = new JButton("*"));
p1.add(jbt0 = new JButton("0"));
p1.add(jbtClear = new JButton("CE"));
p1.add(jbtE = new JButton("="));
p1.add(jbtDiv = new JButton("/"));
JPanel p2 = new JPanel(new BorderLayout());
p2.add(jtfResult = new JTextField(8), BorderLayout.NORTH);
p2.add(p1, BorderLayout.CENTER);
jtfResult.setEditable(false);
this.setLayout(new BorderLayout());
this.add(p2, BorderLayout.CENTER);
jbt1.addActionListener(new myListener());
jbt2.addActionListener(new myListener());
jbt3.addActionListener(new myListener());
jbt4.addActionListener(new myListener());
jbt5.addActionListener(new myListener());
jbt6.addActionListener(new myListener());
jbt7.addActionListener(new myListener());
jbt8.addActionListener(new myListener());
jbt9.addActionListener(new myListener());
jbt0.addActionListener(new myListener());
jbtAdd.addActionListener(new myListener());
jbtDiv.addActionListener(new myListener());
jbtSub.addActionListener(new myListener());
jbtMul.addActionListener(new myListener());
jbtE.addActionListener(new myListener());
jbtClear.addActionListener(new myListener());
}
class myListener implements ActionListener{
public void actionPerformed(ActionEvent e){
String actionCommand = e.getActionCommand();
if ("1".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "1");
}
else if ("2".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "2");
}
else if ("3".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "3");
}
else if ("4".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "4");
}
else if ("5".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "5");
}
else if ("6".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "6");
}
else if ("7".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "7");
}
else if ("8".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "8");
}
else if ("9".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "9");
}
else if ("0".equals(actionCommand)){
display = jtfResult.getText();
jtfResult.setText(display + "0");
}
else if ("+".equals(actionCommand)){
display1 = display;
oper = '+';
jtfResult.setText("");
}
else if ("-".equals(actionCommand)){
oper = '-';
display1 = display;
jtfResult.setText("");
}
else if ("/".equals(actionCommand)){
oper = '/';
display1 = display;
jtfResult.setText("");
}
else if ("*".equals(actionCommand)){
oper = '*';
display1 = display;
jtfResult.setText("");
}
else if("=".equals(actionCommand)){
solve();
System.out.println(display1);
System.out.println(display);
}
else if ("CE".equals(actionCommand)){
jtfResult.setText("");
}
}//Action Performed
}
public void solve(){
number1 = Double.parseDouble(display1);
number2 = Double.parseDouble(display);
jtfResult.setText("");
if (oper == '+'){
result = number1 + number2;
String stringResult = Double.toString(result);
jtfResult.setText(stringResult);
}
else if (oper == '-'){
result = number1 - number2;
String stringResult = Double.toString(result);
jtfResult.setText(stringResult);
}
else if (oper == '*'){
result = number1 * number2;
String stringResult = Double.toString(result);
jtfResult.setText(stringResult);
}
else if (oper == '/'){
if (number2 == 0)
jtfResult.setText("ERROR");
else
result = number1/number2;
String stringResult = Double.toString(result);
jtfResult.setText(stringResult);
}
}
}
よう
そして、あなたのprocessInputReceived * "あなたはエラーになります。" *どのようなエラー?私たちに推測させるのではなく、常にエラー出力をコピー/ペーストしてください。脇に、質問することを忘れないでください。 –
あなたのコードに、特にエラーの場所の前に、printlnを配置してください。あなたがコンピュータであるかのようにコードを論理的に歩きます。そうすれば、あなたが行っていると思うように、表示を変えないでください(そして拡大表示1)。 –