import java.awt.Color; import java.awt.Label; import java.awt.event.MouseListener; import java.awt.event.MouseEvent; /** * ColorLabel is an extension of a label with an id field and coordinates. It * has a listener on it to set the Mouse Left and Right click with the corresponding * background color. **/ public class ColorLabel extends Label implements MouseListener { private int x, y, idX, idY; private Color background; /** Creates a default ColorLabel. **/ public ColorLabel(){} /** * Creates a ColorLabel which takes in a color, coordinates and a special id. * * Example: * new ColorLabel(Color.Blue,5,5,5,5); **/ public ColorLabel(Color background, int x, int y, int idX, int idY) { // sets a listener, sets x and y coordinates and the background and // sets the fields with the corresponding values addMouseListener(this); setBounds(x,y,15,15); setBackground(background); this.background = background; this.x = x; this.y = y; this.idX = idX; this.idY = idY; } /** * Overwrites the setBackground so it sets the background and stores it in * a field of its own. **/ public void setBackground(Color background) { // sets the background and sets the field to the value passed through // the parameter this.background = background; super.setBackground(background); } /** * Invoked when the mouse button has been clicked (pressed and released) on a component. * Sets the corresponding color to the Mouse Left and Mouse Right fields and * save the ID of the last color picked. **/ public void mouseClicked(MouseEvent e) { if(e.getButton() == MouseEvent.BUTTON1) ColorBox.foreGround.setBackground(background); if(e.getButton() == MouseEvent.BUTTON3) ColorBox.backGround.setBackground(background); // lets the program know which is the current swatch selected ColorBox.selectedSwatchX = idX; ColorBox.selectedSwatchY = idY; } /** Invoked when a mouse button has been released on a component.**/ public void mouseReleased(MouseEvent e){} /** Invoked when a mouse button has been pressed on a component. **/ public void mousePressed(MouseEvent e){} /** Invoked when the mouse enters a component.**/ public void mouseEntered(MouseEvent e){} /** Invoked when the mouse exits a component. **/ public void mouseExited(MouseEvent e){} }