Created with colorer-take5 library. Type 'java'

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

public class LineArray extends JComponent {
    private Dimension dim;
    private int[] array;
    private int index;
    private int index2;
    private boolean finished;
    private boolean show_max;
    
    /** Creates a new instance of LineArray */
    public LineArray(int[] array) {
        this.array=array;
    }
    public void setIndex(int index,int index2, boolean finished, boolean show_max) {
        this.index=index;
        this.index2=index2;
        this.finished=finished;
        this.show_max=show_max;
    }
    protected void draw(Graphics g) {
        int max=array[0];
        int max2=array[0];
        int max2_index=0;
        for(int i=1;i<array.length;i++) {
            if(array[i]>max) {
                max=array[i];
            }
            if(array[i]>=max2 && i <=index2) {
                max2=array[i];
                max2_index=i;
            }
        }
        max=(int)(max*1.1);
        dim=getSize(dim);
        g.drawRect(0,0, dim.width-1, dim.height-1);
        int dx=(dim.width-1)/array.length;
        for(int i=0;i<array.length;i++) {
            if(i==index && !finished) {
                g.setColor(Color.RED);
            } else if(i>index2) {
                g.setColor(Color.BLUE);
            } else {
                g.setColor(Color.BLACK);
            }
            g.drawLine((i+1)*dx, dim.height, (i+1)*dx, 
                       dim.height-dim.height*array[i]/max);
            g.drawLine((i+1)*dx+1, dim.height, (i+1)*dx+1, 
                       dim.height-dim.height*array[i]/max);
            g.drawLine((i+1)*dx-1, dim.height, (i+1)*dx-1, 
                       dim.height-dim.height*array[i]/max);
            if(i==max2_index && show_max) {
              g.drawRect((i+1)*dx-8, dim.height-dim.height*array[i]/max-16,
                         16,16);
              g.drawString("M", (i+1)*dx-4, dim.height-dim.height*array[i]/max-2);
            }
        }
    }
    
    public void paint(Graphics g) {
        draw(g);
    }
    
}