Timer - jak zmienić opóźnienie podczas wykonywania?

0

Może ktoś podpowiedzieć jak zmienić opóźnienie? Teraz cały czas jest to samo które było ostawione na początku. Chodzi mi o to żeby było np wykonanie kodu 2 sec opóźnienia wykonanie kodu 5 sec opóżnienia.

timer = new javax.swing.Timer(delay,new ActionListener()
                {
                    public void actionPerformed(ActionEvent ae)
                    {
                        try
                        {
                            image = ImageIO.read(new File(pliki[nr]));
                            delay=zmienna;
                            timer.setDelay(delay);
                            
                        }
                        catch(Exception ex)
                        {
                            System.out.println(ex);
                        }
                        nr++;
                        if(nr>=pliki.length)
                        {
                            timer.stop();
                        }
                    }
                });
                timer.setInitialDelay(0);
                timer.start();
0

Z metodą setDelay jest coś nie tak?

0

Niby zmienia wartość opóźnienia widać to po wypisaniu na ekran

System.out.println("delay"+timer.getDelay());

ale kod wykonuje się ze stałym opóźnieniem tym które było ustawione na początku.

0

A zmieniasz gdzieś to opóźnienie? W tym kodzie tego nie widzę.

1

Pokaż dokładnie jak zmieniasz opóźnienie. Skąd pewność, że opóźnienie się nie zmieniło. Przed chwilą napisałem programik

        timer = new javax.swing.Timer(200,new ActionListener()
        {
            public void actionPerformed(ActionEvent evt)
            {
                //bardzo widowiskowe działania 
                timer.setDelay(2000);
            }
        });

i opóźnienie się zmieniło.
Jeśli jesteś pewien, że u Ciebie setDelay nie działa, to możesz zatrzymywać timer i tworzyć nowy z innym opóźnieniem

0

Znalazłem błąd.

delay=zmienna;
timer.setDelay(delay)
//dopiero tutaj była zmieniana zmienna=x

Kod wykonywał się tylko 3 razy dlatego dlatego miałem cały czas to samo opóźnienie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1