|
|
Re: **Urgent** How do I animate an image in here?
|
Posted: Sep 14, 2004 10:40 PM
|
|
//DrawPane.java file
import javax.swing.*; import java.awt.event.*; import java.awt.*; import java.applet.*; import java.util.*; import java.util.List; import java.awt.geom.*; import java.io.*; import java.lang.*;
class DrawPane extends JPanel{ List shapeList; Image image = null; Vector lines = new Vector(); Vector drawn = new Vector(); Vector object = new Vector();
public DrawPane() { shapeList = new ArrayList(); setBackground(Color.white); addMouseListener(new DotSelector(this)); } protected void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); for(int j = 0; j < shapeList.size(); j++) { g2.fill((Shape)shapeList.get(j)); // Ellipse2D g2.draw((Shape)shapeList.get(j)); // Line2D } int np = lines.size();
// draw the current lines g.setColor(getForeground()); for (int i=0; i < np; i++) { //System.out.println(drawn.elementAt(i).toString()); if(drawn.elementAt(i).toString().equals("i")) g.drawImage((Image)lines.elementAt(i),0,0,this); } } public List getShapeList() { return shapeList; } public void clear() { shapeList.clear(); lines.clear(); drawn.clear(); repaint(); } public void loadImage(String filename) { image = Toolkit.getDefaultToolkit().getImage(filename); lines.addElement(image); drawn.addElement(new String("i")); }
}
class DotSelector extends MouseAdapter { DrawPane dalPanel; final int DIA = 8; Point lastPoint; public DotSelector(DrawPane dalp) { dalPanel = dalp; } public void mousePressed(MouseEvent e) { if(e.getClickCount() > 1) { dalPanel.clear(); return; } Point p = e.getPoint(); List list = dalPanel.getShapeList(); Ellipse2D dot = new Ellipse2D.Double(p.x - DIA/2, p.y - DIA/2, DIA, DIA); list.add(dot); if(list.size() > 1) // no line until after the first dot { Line2D line = new Line2D.Double(lastPoint.x, lastPoint.y, p.x, p.y); list.add(line); } dalPanel.repaint(); lastPoint = p; } }
class DrawControls extends Panel implements ActionListener { DrawPane target; DrawPane panel;
public DrawControls(DrawPane target) { this.target = target; setLayout(new FlowLayout()); setBackground(Color.lightGray); Button clearall = new Button("Clear"); clearall.addActionListener(this); add(clearall); Button play = new Button("Play"); add(play); } public void actionPerformed(ActionEvent e) { if (e.getActionCommand().equals("Clear")){ target.clear(); }
} }
|
|