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

Статус: Offline
Реєстрація: 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, проверяете состояние и делаете там то, что нужно. Также может иметь смысл завести свой тип слушателя со всей сопустствующей фигней.
 
Скорее всего ТС пишет курсач. Сам помню 1й курсач на ждаве методом тыка писал, пока Хорстмана не прочел.
 
наглядный пример использования goto :D
 
Спс за ответы. Да пишу, что то вроде курсача но не для института, а для себя. По поводу чтения Хортмана то еще не читал полностью, но прочел от корки до корки Шилда и несколько раз выборочно (результат как видите :-) туго дается), щас начал читать патерны проектирования (как раз с Observerом разберусь). Что касается кода то таймер был взят для того, что бы сверять комбинации нажатых клавиш (тут я только кусок выложил). Ну, а суть вопроса заключалась в том, что может есть какое то решение вернутся на несколько строчек выше (кроме Go To).
 
Останнє редагування:
Что касается кода то таймер был взят для того, что бы сверять комбинации нажатых клавиш (тут я только кусок выложил). Ну, а суть вопроса заключалась в том, что может есть какое то решение вернутся на несколько строчек выше.
Вернуться откуда и куда (это к вопросу об основах программирования)?

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

Чем Вас не устраивает предложенный мной вариант со слушателем на изменения состояния buttonStart?
 
Klez ты гений, о бесконечном цикле я так и не подумал вери вери спс :клас:
 
Назад
Зверху Знизу