Увеличить или уменьшить скорость таймера поворота с помощью кнопок? - PullRequest
1 голос
/ 16 ноября 2011

Этот вопрос распространяется на другой вопрос, с которым я получил помощь через Stackoverflow ( Обновлять JLabel каждые X секунд из ArrayList - Java ) при обновлении метки каждые X секунд.Во всяком случае ... Теперь я хотел бы увеличить или уменьшить скорость таймера и сделать так, чтобы он снова и снова повторял файл.

Мой оператор печати выглядит следующим образом: (int tM в настоящее время установлен на 300 ...)

private void printWords() {
        final Timer timer = new Timer(tM, null);

        ActionListener listener = new ActionListener() {
            private Iterator<Word> w = words.iterator();
            @Override 
            public void actionPerformed(ActionEvent e) {
                if (w.hasNext()) {
                    _textField.setText(w.next().getName());
                    //Prints to Console just Fine...
                    //System.out.println(w.next().getName());   
                }
                else {
                    timer.stop();
                }
            }
        };
        timer.addActionListener(listener);
        bPlay.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              timer.start();
            }
          });
        bPause.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              timer.stop();
            }
          });

}

Я хотел бы увеличить или уменьшить скорость с помощью парыдругие кнопки, быстрее и медленнее.

Как мне изменить интервал таймера во время использования?

bFaster.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              tM = 100;
            }
          });
        bSlower.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
              tM = 1000;
            }
          });

Спасибо за любые идеи.

С уважением, JF

1 Ответ

3 голосов
/ 16 ноября 2011

Не можете ли вы сделать следующее?Время не будет идеальным, но, вероятно, незаметным для пользователя:

   bFaster.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          tM = 100;
          timer.stop();
          timer.setDelay( tM );
          timer.start();
        }
      });
    bSlower.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
          tM = 1000;
          timer.stop();
          timer.setDelay( tM );
          timer.start();
        }
          });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...