ButtonApp2: ButtonLeft.java

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class ButtonLeft extends JButton implements ActionListener {
    private Square square; //*2 Keep pointer to square we control

    public ButtonLeft (Square square) {
	this.square = square; //*2
	setIcon (new ImageIcon ("leftArrow.gif")); //*1 Handle our own properties setup
	setBorder (new LineBorder(Color.GREEN, 2)); //*1
	addActionListener (this); //*3 Handle our own callback
    }

    public void actionPerformed (ActionEvent e) { //*3
        square.doAction (Square.ButtonAction.LEFT); //*4 Call square to do the job
    }
}
[download file]