Как запустить таймер Swing? - PullRequest
0 голосов
/ 28 июня 2018

Прямо сейчас, объект перемещается с определенным шагом каждый раз, когда я вручную нажимаю кнопку, но на самом деле предполагается, что он сам перемещается по экрану самостоятельно после нажатия кнопки. Я попытался вызвать timer.start (); разные времена в моем коде. Кроме того, установка оператора if в методе actionPerformed, который проверяет, нажата ли кнопка, а затем вызывает timer.start () в результате. Но это не заставило объект двигаться самостоятельно.

Кто-нибудь может привести меня в правильном направлении? Я не пишу код правильно? Или эта проблема как-то связана с таймером свинга Java?

PS. Я новичок в Java,

И это часть моего кода:

 public void actionPerformed(ActionEvent e){

    if (e.getSource() == rightBtn) {    
        objXpos += objMoveIncrement;
        direction.equals("Right");

    }
    if (e.getSource() == leftBtn) {
        direction.equals("Left");
        objXpos -= objMoveIncrement;
    }

    repaint();

} } **редактировать Предполагается, что таймер запускается после нажатия кнопки, а таймер позволяет объекту перемещаться по экрану

1 Ответ

0 голосов
/ 28 июня 2018

эта проблема связана с таймером свинга Java.

номер

Разве я не пишу код, верно?

Это было бы проблемой.

таймер должен запускаться после нажатия кнопки

А как останавливается таймер? Что произойдет, если вы нажмете «вправо», а затем «вниз»?

Не зная точных требований, трудно дать точное решение.

Так что я бы предложил, чтобы одним из решений было просто запустить таймер при запуске вашей программы.

Затем в ActionListener для каждой кнопки вы меняете направление.

Затем, когда вызывается ActionListner для Timer, вы просто перемещаете объект в соответствии с текущим направлением и затем перерисовываете объект.

Обычно вы используете Key Bindings для чего-то подобного. Поэтому, когда вы нажимаете клавишу, вы запускаете таймер, а когда вы отпускаете клавишу, вы останавливаете таймер. Посмотрите пример Motion With Key Bindings из Движение с помощью клавиатуры для рабочего примера этого подхода.

...