MAKE A GUI APPLICATION Design the simulation application as
MAKE A GUI APPLICATION
Design the simulation application as shown below: A recorded video is posted on blackboard. Please implement as much as possible.Solution
import javax.swing.*;
import javax.swing.JOptionPane;
import java.awt.*;
import java.awt.event.*;
//<applet code=Calculator height=300 width=200></applet>
public class Calculator extends JApplet {
public void init() {
CalculatorPanel calc=new CalculatorPanel();
getContentPane().add(calc);
}
}
class CalculatorPanel extends JPanel implements ActionListener {
JButton
n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,plus,minus,mul,div,dot,equal;
static JTextField result=new JTextField(\"0\",45);
static String lastCommand=null;
JOptionPane p=new JOptionPane();
double preRes=0,secVal=0,res;
private static void assign(String no)
{
if((result.getText()).equals(\"0\"))
result.setText(no);
else if(lastCommand==\"=\")
{
result.setText(no);
lastCommand=null;
}
else
result.setText(result.getText()+no);
}
public CalculatorPanel() {
setLayout(new BorderLayout());
result.setEditable(false);
result.setSize(300,200);
add(result,BorderLayout.NORTH);
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(4,4));
n7=new JButton(\"7\");
panel.add(n7);
n7.addActionListener(this);
n8=new JButton(\"8\");
panel.add(n8);
n8.addActionListener(this);
n9=new JButton(\"9\");
panel.add(n9);
n9.addActionListener(this);
div=new JButton(\"/\");
panel.add(div);
div.addActionListener(this);
n4=new JButton(\"4\");
panel.add(n4);
n4.addActionListener(this);
n5=new JButton(\"5\");
panel.add(n5);
n5.addActionListener(this);
n6=new JButton(\"6\");
panel.add(n6);
n6.addActionListener(this);
mul=new JButton(\"*\");
panel.add(mul);
mul.addActionListener(this);
n1=new JButton(\"1\");
panel.add(n1);
n1.addActionListener(this);
n2=new JButton(\"2\");
panel.add(n2);
n2.addActionListener(this);
n3=new JButton(\"3\");
panel.add(n3);
n3.addActionListener(this);
minus=new JButton(\"-\");
panel.add(minus);
minus.addActionListener(this);
dot=new JButton(\".\");
panel.add(dot);
dot.addActionListener(this);
n0=new JButton(\"0\");
panel.add(n0);
n0.addActionListener(this);
equal=new JButton(\"=\");
panel.add(equal);
equal.addActionListener(this);
plus=new JButton(\"+\");
panel.add(plus);
plus.addActionListener(this);
add(panel,BorderLayout.CENTER);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==n1) assign(\"1\");
else if(ae.getSource()==n2) assign(\"2\");
else if(ae.getSource()==n3) assign(\"3\");
else if(ae.getSource()==n4) assign(\"4\");
else if(ae.getSource()==n5) assign(\"5\");
else if(ae.getSource()==n6) assign(\"6\");
else if(ae.getSource()==n7) assign(\"7\");
else if(ae.getSource()==n8) assign(\"8\");
else if(ae.getSource()==n9) assign(\"9\");
else if(ae.getSource()==n0) assign(\"0\");
else if(ae.getSource()==dot)
{
if(((result.getText()).indexOf(\".\"))==-1)
result.setText(result.getText()+\".\");
}
else if(ae.getSource()==minus)
{
preRes=Double.parseDouble(result.getText());
lastCommand=\"-\";
result.setText(\"0\");
}
else if(ae.getSource()==div)
{
preRes=Double.parseDouble(result.getText());
lastCommand=\"/\";
result.setText(\"0\");
}
else if(ae.getSource()==equal)
{
secVal=Double.parseDouble(result.getText());
if(lastCommand.equals(\"/\"))
res=preRes/secVal;
else if(lastCommand.equals(\"*\"))
res=preRes*secVal;
else if(lastCommand.equals(\"-\"))
res=preRes-secVal;
else if(lastCommand.equals(\"+\"))
res=preRes+secVal;
result.setText(\" \"+res);
lastCommand=\"=\";
}
else if(ae.getSource()==mul)
{
preRes=Double.parseDouble(result.getText());
lastCommand=\"*\";
result.setText(\"0\");
}
else if(ae.getSource()==plus)
{
preRes=Double.parseDouble(result.getText());
lastCommand=\"+\";
result.setText(\"0\");
}
}
}


