Salve a tutti
sto cercando di far muovere un quadratino su un frame in un moto rettilineo uniforme autonomamente lungo l'asse y (in questo caso) all'apertura del programma...

public class Moto extends JPanel implements ActionListener{
private final int x=400;
private int y;
private final int lato = 100;
private int secondi;


public void paint(Graphics g){
super.paint(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.red);
Calendar calendar = new GregorianCalendar();
secondi = calendar.get(Calendar.SECOND);
y= 10*secondi;
g2.fillRect(x, y, lato, lato);
}

public void actionPerformed(ActionEvent arg0) {
repaint();

}


public static void main(String[] args) {
JFrame f = new JFrame();
f.setTitle("Esercizio di prova di spostamento automatico nel tempo");
f.setSize(500,500);
f.setResizable(false);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Moto p = new Moto();
f.getContentPane().add(p);//aggiungo al frame l'oggetto p
f.setVisible(true);
Timer timer = new Timer(1000,p);
timer.start(); // faccio partire il timer

}

}
I problemi sono due

- il moto è sì uniforme ma non è molto bello ho provato a prendere dal Calendario i millisecondi (al posto dei normali secondi) e moltiplicarli per 10...ma il quadratino scompare nel nulla.....

- l'altro problema è gestire il ritorno del quadratino nella direzione opposta una volta che è arrivato al bordo...ho provato a gestire la cosa con diversi if incapsulati ma sono riuscito solo a creare delle cose molto bizzarre