Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 21

timer.stop

08.12.2010, 15:44. Показов 5156. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться, пожалуйста!
Не могу "остановить" таймер. Функция timer.stop() не работает почему-то. Может, я чего-то не так делаю? Вот код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 if(p==1)
            {
 
 
                Ellipse2D rect5 = new Ellipse2D.Double();
                rect5.setFrame(px1-1,(py1-8),4,4);
                g2.setPaint(Color.yellow);
                g2.fill(rect5);
 
                Ellipse2D rect6 = new Ellipse2D.Double();
                rect6.setFrame(px2,(py2-8),4,4);
                g2.setPaint(Color.yellow);
                g2.fill(rect6);
               
        //запуск таймера
               
                
               
                Timer timer = new Timer(1000, new ActionListener() {
                                public void actionPerformed(ActionEvent e) {
                                    if(py1>-1&py2>-1)
                                    { py1-=1;
                                        py2-=1;}
                                        repaint();
                                   
                                        System.out.println("py1="+py1);
                                       
                                }
                        });
                            
               
                   
                             if(py1>=-1.0&py2>=-1.0)
                             timer.start();
                             else timer.stop();
                             
            }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.12.2010, 15:44
Ответы с готовыми решениями:

Timer and elapsed time
Можно ли у запущенного таймера определить время, через которое он отработает ? То есть сколько ему осталось до запуска TimerTask.

Timer vs try catch
Кто знает что лучше использовать для повышения FPS : Timer и TimerTask или try catch в java ?

Timer
Добрый всем день подскажите плиз как использовать таймер чтобы каждую секунду менялась переменная и выводилась в jLabel. Зараннее...

7
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
08.12.2010, 21:47
eva-ru88, а
Java
1
timer.cancel();
работает?
0
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 21
09.12.2010, 10:07  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
eva-ru88, а
Java
1
timer.cancel();
работает?
Нет, компилятор на cancel ругается...
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
09.12.2010, 12:22
eva-ru88, какой именно таймер вы используете? напишите его импорт
0
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 21
09.12.2010, 13:05  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
eva-ru88, какой именно таймер вы используете? напишите его импорт
import javax.swing.Timer;

Крутила я, вертела программу и обнаружила такую вещь: если просто прописать timer.stop() без условий, функция работает. Но мне нужно остановить таймер при условии: py1==-1;
В if выполнение timer.stop() блокируется.
0
Эксперт JavaЭксперт С++
 Аватар для M128K145
8384 / 3617 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
09.12.2010, 15:28
eva-ru88, а сколько раз выполняется этот код?
Java
1
2
3
4
if(py1>=-1.0&py2>=-1.0)
    timer.start();
else
    timer.stop();
0
10 / 10 / 0
Регистрация: 25.11.2010
Сообщений: 40
09.12.2010, 18:29
А почему условие там где стопается таймер должно выполняться???

На пример: py1 = 5, py2 = 3;

После четвертой итерации py1 = 1, py2 = -1.

Смотрим далее:

if(py1>-1&py2>-1) - это условие не выполняеться и как следствие py1, py2 не декрементируються на единицу...

Далее выполняеться другая проверка: if(py1>=-1.0&py2>=-1.0) - и условее выполняеться - таймер стартует...

Я думаю что при таком раскладе else никогда и не выполнится

Попробуй заменить

Java
1
2
3
if(py1>=-1.0&py2>=-1.0)
timer.start();
else timer.stop();
на

Java
1
2
if(py1<=-1 || py2<=-1) timer.stop()
else timer.start()
0
0 / 0 / 1
Регистрация: 20.11.2010
Сообщений: 21
10.12.2010, 08:01  [ТС]
Цитата Сообщение от M128K145 Посмотреть сообщение
eva-ru88, а сколько раз выполняется этот код?
Java
1
2
3
4
if(py1>=-1.0&py2>=-1.0)
    timer.start();
else
    timer.stop();
Вот мне и нужно, чтобы этот код выполнялся столько раз, сколько py1 и py2 на единицу уменьшаются. То есть проверка должна выполняться после каждой прорисовки. А как это реализовать, не знаю. Ставлю цикл - программа вообще зависает...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2010, 08:01
Помогаю со студенческими работами здесь

Не работает Timer
Не могу разобраться с таймером. В консоли он вообще работает? Код взят с форума какого то) Помогите разобраться, что не так, или скиньте...

Timer в linux
Всем привет! Изучал java, решил написать змейку. Писал на винде, было все хорошо. Для шага змейки использовал Timer. По его событию,...

Timer. Помогите разобраться
ребята помогите разобраться с таймером гуглив не помогло кто знает как им работать помогите пожалуйста

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

Timer в консольном приложении Java
Задумка следующая: я добавляю в БД запись, но перед этим хочу немного &quot;проанимировать&quot; процесс добавления, выводя в консоль...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru