2015-11-11 3 views
-1

Я продолжаю получать ожидаемую ошибку на displayTimer.start(); line ... в чем причина этого? Я просто пытаюсь понять, как использовать таймер качания с двумя входами в конструктор, и ничто иное не станет более привлекательным. Я получил этот код из: http://albertattard.blogspot.com/2008/09/practical-example-of-swing-timer.htmlТаймер не работает?

import java.awt.event.*; 
import javax.swing.Timer; 

public class Five { 
    public static void main(String[] args){ 
     ActionListener listener = new ActionListener(){ 
       public void actionPerformed(ActionEvent event){ 
        System.out.println("hello"); 
       } 
      }; 
     Timer displayTimer = new Timer(1000, listener); 
     displayTimer.start(); 
    } 
} 
+0

Разместите свой код в методе – Reimeus

+0

Woops. Хорошо, добавив основной метод, который исправил эту ошибку, но теперь он, похоже, не работает постоянно ... он никогда не печатает привет. – user2154420

+1

Он слушает действие, которое никогда не приходит. – csmckelvey

ответ

2

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

Возможно, потому что JVM существует до того, как у Таймера есть шанс выстрелить. Точка таймера - использовать его с графическим интерфейсом.

Итак, создайте более практичный пример. Сначала создайте JFrame и сделайте рамку видимой. Тогда JVM не будет выходить, пока рамка будет видна. Затем вы можете запустить таймер.

Для получения дополнительной информации о различных потоках, используемых в Swing, прочтите раздел из руководства Swing по телефону Concurrency.

+0

Я добавил JFrame f = new JFrame(); f.setVisible (правда), и это сделало трюк! – user2154420

Смежные вопросы