/* * Calc.java * * Created on September 18, 2002, 8:25 PM */ /** * * @author Nathan Balon * SN# 797737 * IS 375 * Calculator * Program #2 * @version 1.0 */ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calc extends javax.swing.JApplet implements ActionListener { private JTextField display, disp; private JLabel label; private GridBagLayout layout; private GridBagConstraints constraints; private Container cont; private boolean start = true; private double arg; private String operation = "="; public void init(){ cont = getContentPane(); layout = new GridBagLayout(); cont.setLayout(layout); constraints = new GridBagConstraints(); display = new JTextField("0"); display.setEditable(false); label = new JLabel("Result"); disp = new JTextField("0"); disp.setEditable(false); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(5,3)); String buttons = "7894561230+-="; for (int i = 0; i < buttons.length(); i++){ addButton(panel, buttons.substring(i, i+1)); } // Components are added to GridBagLayout constraints.weightx = 1; constraints.anchor = GridBagConstraints.WEST; addComponent(label, 0, 3, 1,1); constraints.fill = GridBagConstraints.HORIZONTAL; addComponent(disp, 0, 4, 1, 1); addComponent(display, 1, 0, 4, 1); addComponent(panel, 1, 1, 4, 6); } //init // adds the buttons to the calculator private void addButton(Container cont, String s){ JButton b = new JButton(s); cont.add(b); b.addActionListener(this); }//addButton private void addComponent(Component component, int column, int row, int width, int height) { // set gridx and gridy constraints.gridx = column; constraints.gridy = row; //set gridwidt and grid height constraints.gridwidth = width; constraints.gridheight = height; //set constrains and add component layout.setConstraints(component, constraints); cont.add(component); }//addComponent public void actionPerformed(ActionEvent evt){ String s = evt.getActionCommand(); if('0' <= s.charAt(0) && s.charAt(0) <= '9'){ if(start) display.setText(s); else display.setText(display.getText()+s); start = false; } else{ if(start){ operation =s; } else{ double x = Double.parseDouble(display.getText()); calculate(x); operation = s; start =true; } } }//actionPerformed // performs calculation public void calculate(double n){ if(operation.equals("+")) arg += n; else if(operation.equals("-")) arg -= n; else if (operation.equals("=")) arg = n; display.setText(""+ arg); disp.setText("" + arg); }//cals }