Я попытался остановить таймер, но я не справился с этим. Мне нужно остановить таймер, когда метка покидает экран (x < 0) и снова запустите таймер, чтобы переместить ярлык справа налево.Как остановить таймер?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
for(int i=0;i<10;i++){
x=365; //horizontal position
while(x>0){
randPosition=(int) (Math.random() * 365); // random vertical position
y=randPosition;
timer=new Timer(50,new ActionListener() {
public void actionPerformed(ActionEvent ae) {
jLabel1.setLocation(x,y);
rand=(int)(Math.random()*10); //random speed to the left
x=x-rand;
}
});
timer.start();
}
}
}
https://docs.oracle.com/javase/7/docs/api/java/util/Timer.html#cancel()? – bdares
'while (x> 0) {' Какова цель цикла while? Он не будет прерван до тех пор, пока x <= 0, что не произойдет, потому что таймеры, которые уменьшают 'x', не смогут этого сделать (поскольку EDT уже занят) – copeg