import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Gamma extends JFrame implements AdjustmentListener {

    Canvas gammaCanvas;
    Scrollbar gammaSlider;
    Label numberLabel;

    public static void main(String []args)
    {
        Gamma g = new Gamma();
        g.setVisible(true);
    }
    
    public Gamma()
    {
        init();
        pack();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
    }

    public void init() {
        setLayout(new BorderLayout());
        gammaCanvas = new GammaCanvas();
        gammaCanvas.setSize(450,300);
        add(gammaCanvas);
        gammaSlider = new Scrollbar(Scrollbar.HORIZONTAL, 128, 1, 0, 256);
        gammaSlider.addAdjustmentListener(this);
        add(gammaSlider, BorderLayout.SOUTH);
        numberLabel = new Label("128", Label.CENTER);
        add(numberLabel, BorderLayout.NORTH);
    }
    
    class GammaCanvas extends Canvas {
        
        public void paint (Graphics g) {
            int width = getWidth(), height = getHeight();
            g.setColor(Color.white);
            g.fillRect(0, 0, width, height);
            g.setColor(Color.black);
            for (int i = 0; i < height; i += 2)
                g.fillRect(0, i, width, 1);
            int v = gammaSlider.getValue();
            g.setColor(new Color(v, v, v));
            g.fillRect(width/3, 0, width/3, height);
        }
    
    }

    public void adjustmentValueChanged(AdjustmentEvent e) {
        numberLabel.setText(Integer.toString(e.getValue()));
        gammaCanvas.repaint();
    }
}
