Note that there are some explanatory texts on larger screens.

plurals
  1. POcalculator multiple values
    primarykey
    data
    text
    <p>I am done with my calculator, thanks to the people here who helped me. Here what I have done:</p> <pre><code>import java.awt.*; import java.awt.event.*; public class SimpleCalculator implements ActionListener { double value1=0,value2=0,result=0; static String command=null; int counter=0; // containers private Frame f; private Panel p1, p2, p3, p4,p5,p6; // components private Label l1, l2, l3; static private TextField tf1; private Button bAdd, bSub, bMul, bDiv, bClear,b1,b2,b3,b4,b5,b6,b7,b8,b9,b0,bEqual; private static void value(String num) { if((tf1.getText()).equals("0")) tf1.setText(num); else tf1.setText(tf1.getText()+num); } public SimpleCalculator() { f = new Frame("My First GUI App"); p1 = new Panel(); p2 = new Panel(); p3 = new Panel(); p4 = new Panel(); p5 = new Panel(); p6 = new Panel(); tf1 = new TextField(15); b1 = new Button("1"); b2 = new Button("2"); b3 = new Button("3"); b4 = new Button("4"); b5 = new Button("5"); b6 = new Button("6"); b7 = new Button("7"); b8 = new Button("8"); b9 = new Button("9"); b0 = new Button("0"); bAdd = new Button("+"); bSub = new Button("-"); bMul = new Button("*"); bDiv = new Button("/"); bClear = new Button("C"); bEqual = new Button("="); } public void launchFrame() { // use default layout manager of the Panel (FlowLayout) p1.add(tf1); p2.add(b1); p2.add(b2); p2.add(b3); p3.add(b4); p3.add(b5); p3.add(b6); p4.add(b7); p4.add(b8); p4.add(b9); p5.add(b0); p6.add(bAdd); p6.add(bSub); p6.add(bMul); p6.add(bDiv); p6.add(bClear); p6.add(bEqual); // change the layout manager of the Frame, // use GridLayout(4, 1) f.setLayout(new GridLayout(6, 1)); f.add(p1); f.add(p2); f.add(p3); f.add(p4); f.add(p5); f.add(p6); f.pack(); f.setVisible(true); // register event handlers b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b0.addActionListener(this); bEqual.addActionListener(this); bAdd.addActionListener(this); bSub.addActionListener(this); bMul.addActionListener(this); bDiv.addActionListener(this); bClear.addActionListener(this); f.addWindowListener(new MyCloseButtonHandler()); } // override the actionPerformed method public void actionPerformed(ActionEvent ae) { Object source = ae.getSource(); if (source == b1) value("1"); else if (source == b2) value("2"); else if (source == b3) value("3"); else if (source == b4) value("4"); else if (source == b5) value("5"); else if (source == b6) value("6"); else if (source == b7) value("7"); else if (source == b8) value("8"); else if (source == b9) value("9"); else if (source == b0) value("0"); else if(source== bAdd){ value1=Double.parseDouble(tf1.getText()); command="+"; tf1.setText(""); } else if(source==bSub){ value1=Double.parseDouble(tf1.getText()); command="-"; tf1.setText(""); } else if(source==bDiv){ value1=Double.parseDouble(tf1.getText()); command="/"; tf1.setText(""); } else if(source == bMul){ value1=Double.parseDouble(tf1.getText()); command="*"; tf1.setText(""); } else if(source ==bClear) tf1.setText("0"); else if(source==bEqual){ value2=Double.parseDouble(tf1.getText()); if(command.equals("+")) result=value1+value2; else if(command.equals("-")) result=value1-value2; else if(command.equals("*")) result=value1*value2; else if(command.equals("/")) result=value1/value2; command="="; tf1.setText(""+result); } } private class MyCloseButtonHandler extends WindowAdapter { public void windowClosing(WindowEvent we) { System.exit(0); } } public static void main(String args[]) { double value1=0; SimpleCalculator sc = new SimpleCalculator(); sc.launchFrame(); } } </code></pre> <p>The problem is that they can't perform operations continuously, like 1+2+3, I have tried adding the values each time I press an operation, but it gives me a wrong output.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload