estudia clases!!! atributos y metodos
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes MenúCita de: 0xFer en 23 Diciembre 2015, 01:28 AM
¿Pero por qué no quieres utilizar hilos?, bueno de todos modos he modificado el código de @crack18 para que funcione sin hilos:
public class AyudaForo extends JPanel{
private static int xinicial = 0, yinicial = 0;
private static int xfinal = 0, yfinal = 0;
private static boolean terminar = false;
private static final byte tamanoPelota=30;
public static AyudaForo animacion = new AyudaForo(0,0,200,200);
public AyudaForo(int xinicial, int yinicial, int xfinal, int yfinal) {
this.xinicial = xinicial;
this.yinicial = yinicial;
this.xfinal = xfinal;
this.yfinal = yfinal;
}
public void paint(Graphics g) {
super.paint(g);
pintarPunto(g, xinicial, yinicial);
}
public void pintarPunto(Graphics g2, int x, int y) {
g2.setColor(Color.blue);
g2.fillOval(x, y, tamanoPelota, tamanoPelota);
}
public static void run() {
while (!terminar) {
xinicial++;
yinicial++;
if (xinicial == xfinal && yinicial == yfinal) {
break;
}
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
animacion.repaint();
}
}
public static void main(String[] args) throws InterruptedException {
JFrame ventana = new JFrame("animacion corriendo");
ventana.setBounds(0, 0, 500, 500);
ventana.add(animacion);
ventana.setVisible(true);
ventana.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
run();
System.out.println("Hilo terminado");
}
}
en el método run hay dos variables xinicial,yinicial y son las coordenadas del punto, o sea que dentro de ese método debes implementar tu algoritmo para dibujar.
public static void run() {
//Aquí utiliza tu algoritmo para ir modificando las variables que te había mencionado
try {
Thread.sleep(10);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
animacion.repaint();
}
debes llamar a repaint cada vez que hayas desplazado el punto, en el ejemplo sólo se llama una vez.
class AnimationFrame extends JPanel {
public AnimationFrame() {
setPreferredSize(new Dimension(500, 500));
}
public void runAnimation() {
repaint();
}
public class Point {
public static void putPixel(Graphics g2, int x, int y) {
Graphics2D g = (Graphics2D)g2;
g.setColor(Color.black);
g.drawLine(x, y, x, y);
}
}