Збір на FPV для «Птахів Мадяра»

Выход из слушателя в Java

  • Автор теми Автор теми Sasha9132
  • Дата створення Дата створення
Статус: Офлайн
Реєстрація: 26.09.2008
Повідом.: 101
Выход из слушателя в Java

Народ помогите разобраться. Есть некоторый код и таймер, внутри таймера запущен слушатель (ActionListener) который каждую секунду проверяет событие. После возникновения события надо выйти до создания таймера.
Пробовал через метки (break label;) поставленные в слушателе но java не видит метки поставленной перед таймером. Как можно это сделать?
Вот пример:
HTML:
outer: {
	final Menu menu = new Menu();
        mainWindow.add(menu);
        mainWindow.addKeyListener(menu);
        Timer timerMenu = new Timer(100, new ActionListener() {
               if (menu.buttonStart.getSelectVisible() == true){
			mainWindow.remove(menu);
			mainWindow.repaint(0, 0, width, height);
                        break outer;//Вот тут ошибка
               }
         }
}
 
Метки используются для ВЫХОДА из нескольких вложенных циклов. Это не эквивалент GoTo. Из внутренних классов метки не выходят.
После возникновения события надо выйти до создания таймера.
Можешь и не пытаться.

Лучше повесь на компоненту реакцию на событие. Или используй шаблон
⚠ Тільки зареєстровані користувачі бачать весь контент та не бачать рекламу.
.
 
Есть некоторый код и таймер, внутри таймера запущен слушатель (ActionListener) который каждую секунду проверяет событие. После возникновения события надо выйти до создания таймера.
Пробовал через метки (break label;) поставленные в слушателе но java не видит метки поставленной перед таймером. Как можно это сделать?
Прошу простить за грубость, но Ваши темы на форуме выдают отсутствие понимания у Вас фундаментальных основ программирования.
Не могли бы Вы пояснить, чего на самом деле вы пытаетесь здесь добиться? Зачем вообще таймер и вся прочая фигня? Какую высокоуровневую цель Вы преследуете?

С виду пока похоже что правильным решением является использование слушателя, а не таймера. Например так: класс, объектом которого является buttonStart, когда его состояние меняется так, что меняется результат getSelectVisible вызывает fireStateChanged, а Вы регистрируете ChangeListener на buttonStart, проверяете состояние и делаете там то, что нужно. Также может иметь смысл завести свой тип слушателя со всей сопустствующей фигней.
 
Спс за ответы. Да пишу, что то вроде курсача но не для института, а для себя. По поводу чтения Хортмана то еще не читал полностью, но прочел от корки до корки Шилда и несколько раз выборочно (результат как видите :-) туго дается), щас начал читать патерны проектирования (как раз с Observerом разберусь). Что касается кода то таймер был взят для того, что бы сверять комбинации нажатых клавиш (тут я только кусок выложил). Ну, а суть вопроса заключалась в том, что может есть какое то решение вернутся на несколько строчек выше (кроме Go To).
 
Останнє редагування:
Что касается кода то таймер был взят для того, что бы сверять комбинации нажатых клавиш (тут я только кусок выложил). Ну, а суть вопроса заключалась в том, что может есть какое то решение вернутся на несколько строчек выше.
Вернуться откуда и куда (это к вопросу об основах программирования)?

Ещё раз: сформулируйте высокоуровневую задачу и шансы на адекватную помощь сильно возрастут! (Пример высокоуровневого описания задачи: если пользователь за краткое время нажимает комбинацию IDDQD, мы прячем пункт меню "Призвать Ктулху") Пока похоже, что Вы выбрали неадекватный подход к задаче и пытаетесь героически преодолеть все трудности на этом неверном пути.

Чем Вас не устраивает предложенный мной вариант со слушателем на изменения состояния buttonStart?
 
Назад
Зверху Знизу