Ниже мой код пытается изменить задержку таймера:
Что ж, если вы хотите изменить "задержку" Timer
, вам нужночтобы вызвать setDelay(..)
метод TImer
.
private boolean speedSlow = false;
private boolean speedNorm = false;
private boolean speedFast = false;
Эти переменные не нужны.Вместо этого вы просто хотите установить задержку Timer
при нажатии на пункт меню.Таким образом, это означает, что вам нужно сделать переменную Timer
переменной экземпляра, чтобы на нее можно было ссылаться в вашем ActionListeners
:
private Timer timer;
Теперь в вашем конструкторе вы создаете таймер с задержкой по умолчанию:
timer = new Timer(30, this);
Затем в ваших ActionListeners вы сбрасываете задержку.Например:
slow.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
//speedSlow = true;
timer.setDelay( 30 );
}
});
Ваш существующий метод setDelay (...) не требуется.Кроме того, метод "setter" НЕ должен возвращать значение.Смысл метода «setter» - установить свойство класса.Затем вы также создадите метод «getter», если вам нужно получить доступ к этому значению.Хотя в этом случае ни один метод не нужен, потому что вы можете установить / получить / задержку непосредственно из объекта Timer.