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); } }