2015-11-06 5 views
0

Как изменить цвет FilledOval только на полсекунды, а затем вернуться к исходному цвету в java?Изменение цвета для определенного количества времени java

if(target.contains(shooter.getLocation())){   
    target.setColor(Color.RED);  
    } 

Попытка сделать его заменой на красный только на полсекунды, а затем обратно на черный.

ответ

0

Предполагая, что это графический интерфейс Swing: используйте Swing Timer. Задайте цвет, как вы делаете выше, а затем запустите таймер Swing, который не повторяется, то есть вызывает setRepeats(false), а в пределах ActionListener Timer вернет цвет назад к базовой линии, а затем вызовет start() на таймере.

т.е.

if(target.contains(shooter.getLocation())) {   
    target.setColor(Color.RED); 
    int mSecs = 500; 
    Timer timer = new Timer(mSecs, new TimerListener(target)); 
    timer.setRepeats(false); 
    timer.start(); 
} 

Я оставлю код TimerListener до вас, но я описал выше, что он должен делать.

+0

Как я могу предотвратить изменение цвета на секунду после изменения на красный? –

+0

@ E.Sapetnitzky: это новая и другая проблема и будет зависеть от того, что вы нам не сказали. –

+1

Вы пропустили ')' после объявления 'Timer'. – Arc676