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

public class GUIDemo extends JFrame {
    
    private Clicker changer;
    private SquareDragger sd;
    private JMenuItem colorItem;
    
    private static Color[] colors = {Color.red, Color.blue, Color.yellow, Color.green, Color.magenta, Color.cyan, Color.ORANGE};
    private int colorNum;
    
    public GUIDemo() {
        setTitle("Demonstration");
        setSize(400,400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new FlowLayout());
        
        changer = new Clicker("Change color");
        changer.addActionListener(new ColorChanger());
        getContentPane().add(changer);
        
        sd = new SquareDragger();
        getContentPane().add(sd);
        
        colorNum = 0;
        sd.setSquareColor(colors[colorNum]);
        
        JMenuBar bar = new JMenuBar();
        setJMenuBar(bar);
        JMenu colorMenu = new JMenu("Color Menu");
        bar.add(colorMenu);
        
        colorItem = new JMenuItem("Color");
        colorItem.addActionListener(new ColorChanger());
        colorMenu.add(colorItem);
    }
    
    private class ColorChanger implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            colorNum = (colorNum + 1) % colors.length;
            sd.setSquareColor(colors[colorNum]);
            repaint();
        }
    }

    public static void main(String[] args) {
        GUIDemo gd = new GUIDemo();
        gd.setVisible(true);
    }
}
