import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

public class Volume extends JComponent implements MouseWheelListener {
    private static final int margin = 10;
    private static final int numCircles = 10;
    private int currentLevel = 0;

    public void mouseWheelMoved(MouseWheelEvent ev) {
        currentLevel -= ev.getWheelRotation();
        currentLevel = Math.max(0, Math.min(currentLevel, 11));
        repaint();
    }

    @Override
    protected void paintComponent(Graphics brush) {
        Graphics newBrush = brush.create();
        
        if (this.isOpaque()) {
            newBrush.setColor(this.getBackground());
            newBrush.fillRect(0, 0, this.getWidth(), this.getHeight());
        }

        newBrush.setColor(new Color(50, 50, 50));
        newBrush.fillRect(0, 0, getWidth(), getHeight());


        for (int i = 0; i < numCircles; i++) {
            if (currentLevel > i) newBrush.setColor(new Color(230, 170, 0));
            else newBrush.setColor(new Color(200, 200, 200));

            newBrush.fillOval(margin + (getWidth() - margin * 2) / numCircles * i, getHeight() / 2, getHeight() / 4, getHeight() / 4);
        }
    }

    public Volume() {
        super();
    }
}