View Single Post
  #2 (permalink)  
Old 04-24-2008, 05:26 PM
hardwired hardwired is offline
Senior Member
 
Join Date: Jul 2007
Posts: 1,022
hardwired is on a distinguished road
Code:
import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.RenderingHints; import java.awt.geom.Line2D; import java.awt.image.BufferedImage; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.SwingUtilities; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.event.MouseInputAdapter; public class FHP extends JPanel { // int FreeHandCount = 0; // BufferedImage image; FreeHandDraw freehand = new FreeHandDraw(); Color color; public ArrayList<FreeHandDraw> arrFreeHand = new ArrayList<FreeHandDraw>(); // ArrayList xmlFreeHand = new ArrayList(); public FHP() { addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { freehand.setNewFreeHand(true); freehand.setFreehandX(e.getX()); freehand.setFreehandY(e.getY()); arrFreeHand.add(freehand); } public void mouseReleased(MouseEvent e) { repaint(); // FreeHandCount++; } }); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { // Index of last element in list: int lastIndex = arrFreeHand.size()-1; FreeHandDraw free = arrFreeHand.get(lastIndex); free.setFreehandX(e.getX()); free.setFreehandY(e.getY()); repaint(); } }); // closing curley brace was missing } protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2.setPaint(color); freehand.drawme(g); } public static void main(String[] args){ SwingUtilities.invokeLater(new Runnable(){ public void run(){ FHP free = new FHP(); JFrame f = new JFrame(); f.getContentPane().add(free); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(700, 700); f.setLocationRelativeTo(null); // center f.setVisible(true); } }); } public class FreeHandDraw { int[] freehandX = new int[10000]; int[] freehandY = new int[10000]; boolean newFreeHand = false; int index = 0; Color color; public void drawme(Graphics g) { g.setColor(getColor()); for (int i = 0; i < index - 1; i++) { int x = freehandX[i]; int y = freehandY[i]; int x2 = freehandX[i + 1]; int y2 = freehandY[i + 1]; g.drawLine(x, y, x2, y2); } } public void setColor(Color str) { color = str; } public Color getColor() { return color; } public int getIndex() { return index; } public void setFreehandX(int is) { freehandX[index] = is; } public void setFreehandY(int is) { freehandY[index++] = is; } public void setIndex(int i) { index = i; } public boolean isNewFreeHand() { return newFreeHand; } public void setNewFreeHand(boolean newFreeHand) { this.newFreeHand = newFreeHand; } } }
Reply With Quote