salve a tutti...
vorrei delle spiegazioni maggiri a riguardo...non riesco a mettere in pratica questa tecnica.. ho la seguente classe:
public class DesignAnimation extends JPanel implements Runnable {
private String word;
private Point currentPoint;
private Image window, i;
private String direction;
private static boolean running;
private Graphics graphic;
private Image bufferedImage;
private Graphics graphicBuffer;
public DesignAnimation(Image window, Image i, String word, Point initialPoint) { graphicBuffer = i.getGraphics();
graphicBuffer.drawImage(i, currentPoint.x, currentPoint.y, this);
repaint();
this.i = i;
this.word = word;
this.window = window;
currentPoint = initialPoint;
direction = "right";
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(window, 0, 0, getSize().width, getSize().height, this);
g.setFont(new Font("TimesRoman", Font.PLAIN, 40));
g.setColor(Color.red);
g.drawImage(bufferedImage, currentPoint.x, currentPoint.y, this);
int center = (i.getWidth(this) / 2) - 150;
g.drawString(word, currentPoint.x + center, currentPoint.y);
}
public void run() {
running = true;
while (!isInterrupted()) {
if (direction.equals("right")) {
currentPoint.x++;
repaint();
waitFor(5);
if (currentPoint.x == (520)) {
direction = "left";
}
} else {
if (direction.equals("left")) {
currentPoint.x--;
repaint();
waitFor(5);
if (currentPoint.x == 0) {
direction = "right";
}
}
}
}
}
public static void interrupt() {
running = false;
}
private boolean isInterrupted() {
return true ? running == false : false;
}
private void waitFor(long time) {
try {
Thread.sleep(time);
} catch (InterruptedException ex) {
}
}
}
mi da questo errore :
Exception in thread "AWT-EventQueue-0" java.lang.UnsupportedOperationException: getGraphics() not valid for images created with createImage(producer)
at sun.awt.image.ToolkitImage.getGraphics(ToolkitImage.java:292)
at test.DesignAnimation.<init>(DesignAnimation.java:30)
at test.Picture.<init>(Picture.java:35)
at test.Picture$2.run(Picture.java:132)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:597)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
non capisco cosa dovrei sistemare... spero in un vostro aiuto ...grazie: )
Ultima modifica effettuata da killer il 07/12/2010 alle 13:09 |