import static javax.swing.JScrollBar.*;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;





public class Pro23601 

{ 

  public static void main(String[] args)

   {    

    new CrossHairs();    

  }

}





class CrossHairs extends JFrame

{

  private BorderLayout interiorDesigner;

  private JScrollBar hotizonalScroll, verticalScroll;

  private int x, y;

  private Image offscreen;



  public CrossHairs()

  {

    //Sets Vars

    x = 150;

    y = 150;



      interiorDesigner = new BorderLayout();

       setLayout(interiorDesigner);

      {

        hotizonalScroll = new JScrollBar(HORIZONTAL, 150, 25, 0, 365);

        hotizonalScroll.addAdjustmentListener(new Bars());

        hotizonalScroll.setValue(150);

         add(hotizonalScroll, BorderLayout.SOUTH);





        verticalScroll = new JScrollBar(VERTICAL, 150, 25, 0, 325);

      verticalScroll.addAdjustmentListener(new Bars());

      verticalScroll.setValue(150);

      add(verticalScroll, BorderLayout.EAST);





       }

    setSize(400,400);

    setTitle(getClass().getName());

    setLocationRelativeTo(null);

    setResizable(false);

      setDefaultCloseOperation(3);

    setVisible(true);

  }



  public void update(Graphics g)

  {

    offscreen = createImage(getSize().width, getSize().height);



    Graphics og = offscreen.getGraphics();

    paint(og);

    og.dispose();



    g.drawImage(offscreen, 0, 0, this);

  }



  public void paint(Graphics g)

  {

    Graphics2D g2d = (Graphics2D)g;



      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, 

                                    RenderingHints.VALUE_ANTIALIAS_ON);



    g2d.clearRect(0,0,getWidth(),getHeight());



    g2d.setColor(new Color(233, 90, 90));

    g2d.fillRect(x ,y + 30, 60 ,40 ); //Shadded Box



    g2d.setColor(Color.red);

    g2d.drawLine(x + 30,0 ,x + 30 ,390 );//Lines

    g2d.drawLine(0 ,y + 50 ,390 ,y + 50);



    g2d.fillOval(x + 25 ,y + 45 ,10 ,10);//Circle



    g2d.drawRect(x ,y + 30, 60 ,40 );//Outline



    hotizonalScroll.repaint();

    verticalScroll.repaint();

  }



    class Bars implements AdjustmentListener

    {

    public void adjustmentValueChanged(AdjustmentEvent move) 

    {

      if(move.getSource() == hotizonalScroll)

        x = move.getValue();

      else

        if(move.getSource() == verticalScroll)

          y = move.getValue();



      repaint();

    }

  }

}