Here is the Calculator code we wrote (5th period, but the classes were similar):
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator {
private JLabel label; //where we display the current value
private int num; //number shown on the display
private class NumberListener implements ActionListener {
int val; //value of this button
public NumberListener(int val) {
this.val = val;
}
public void actionPerformed(ActionEvent e) {
num = num*10 + val;
label.setText(num + "");
}
}
public Calculator() {
JFrame frame = new JFrame("Calculator");
frame.setLayout(new BorderLayout());
JPanel bPanel = new JPanel(); //panel with all the buttons
bPanel.setLayout(new GridLayout(4,5));
JButton button7 = new JButton("7");
button7.addActionListener(new NumberListener(7));
bPanel.add(button7);
JButton button8 = new JButton("8");
button8.addActionListener(new NumberListener(8));
bPanel.add(button8);
JButton button9 = new JButton("9");
button9.addActionListener(new NumberListener(9));
bPanel.add(button9);
JButton buttonDiv = new JButton("/");
bPanel.add(buttonDiv);
JButton button4 = new JButton("4");
button4.addActionListener(new NumberListener(4));
bPanel.add(button4);
JButton button5 = new JButton("5");
button5.addActionListener(new NumberListener(5));
bPanel.add(button5);
JButton button6 = new JButton("6");
button6.addActionListener(new NumberListener(6));
bPanel.add(button6);
JButton buttonMul = new JButton("*");
bPanel.add(buttonMul);
JButton button1 = new JButton("1");
button1.addActionListener(new NumberListener(1));
bPanel.add(button1);
JButton button2 = new JButton("2");
button2.addActionListener(new NumberListener(2));
bPanel.add(button2);
JButton button3 = new JButton("3");
button3.addActionListener(new NumberListener(3));
bPanel.add(button3);
JButton buttonMin = new JButton("-");
bPanel.add(buttonMin);
JButton button0 = new JButton("0");
button0.addActionListener(new NumberListener(0));
bPanel.add(button0);
JButton buttonPlus = new JButton("+");
bPanel.add(buttonPlus);
frame.add(bPanel, BorderLayout.CENTER);
label = new JLabel("0");
frame.add(label, BorderLayout.NORTH);
num = 0;
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}