Ciao a tutti,sto provando per la prima volta a far muovere un oggetto nell'interfaccia creata con swing, nello specifico vorrei creare l'animazione di una carta che viene buttata,muovendosi per ora in verticale(ma mi piacerebbe che potesse fare anche altri tragitti).
Ho scritto un po' di codice che so già essere penoso (ho già visto che il metodo setLocation non è consigliato ad esempio) ma, anche immaginando di usare altri metodi come drawImage ,volevo sapere se ha senso ad esempio usare il metodo Tread.sleep e provare a giocare sui valori dei millisecondi e dei pixel con cui avviene lo spostamento, o se andrebbero usate classi apposta (ho trovato un esempio con Timer anche se non molto ben fatto) per cercare soprattutto di evitare gli scatti nell'animazione e cercare un movimento più fluido.
Metto qui delle righe di esempio,che come detto so essere pessime, ma tanto per dare un idea di ciò che mi aspetto :
codice:
import javax.swing.*;
import java.awt.*;
public class Animazione
{
public static void main(String[] args)throws InterruptedException
{
JFrame f=new JFrame("Animazione");
JPanel p=new JPanel();
f.add(p);
JLabel l=new JLabel(new ImageIcon("3c.png"));
f.setSize(1000,1000);
p.add(l);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
l.setLocation(1,1);
while(true) // ovviamente in un codice reale non la farei uscire dal frame :)
{
Thread.sleep(2);
l.setLocation(l.getLocation().x,l.getLocation().y+1);
}
}
}
Qualcuno ha per caso già fatto qualcosa di simile?