Pastie now auto-senses if line-wrap is a bad or good idea. Feedback?
## mark a section (Learn more)
This paste will be private.
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(); } } }
From the Design Piracy series on my blog: